@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
@@ -2,24 +2,25 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as SelectPrimitive from "@radix-ui/react-select";
3
3
  import { Check, ChevronDown, ChevronUp } from "lucide-react";
4
4
  import * as React from "react";
5
+ import { SELECT_FLOATING_LAYER_NAME } from "../../lib/floating-layers";
5
6
  import { cn } from "../../lib/utils";
6
7
  const Select = SelectPrimitive.Root;
7
8
  const SelectGroup = SelectPrimitive.Group;
8
9
  const SelectValue = SelectPrimitive.Value;
9
- const SelectTrigger = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(SelectPrimitive.Trigger, { ref: ref, className: cn("flex h-10 w-full items-center justify-between rounded-md border border-input bg-bg px-3 py-2 text-sm ring-offset-bg placeholder:text-muted focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1", className), ...props, children: [children, _jsx(SelectPrimitive.Icon, { asChild: true, children: _jsx(ChevronDown, { className: "h-4 w-4 opacity-50" }) })] })));
10
+ const SelectTrigger = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(SelectPrimitive.Trigger, { ref: ref, className: cn("flex h-10 w-full items-center justify-between rounded-md border border-input bg-bg px-3 py-2 text-sm ring-offset-bg placeholder:text-muted focus:outline-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1", className), ...props, children: [children, _jsx(SelectPrimitive.Icon, { asChild: true, children: _jsx(ChevronDown, { className: "h-4 w-4 opacity-50" }) })] })));
10
11
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
11
12
  const SelectScrollUpButton = React.forwardRef(({ className, ...props }, ref) => (_jsx(SelectPrimitive.ScrollUpButton, { ref: ref, className: cn("flex cursor-default items-center justify-center py-1", className), ...props, children: _jsx(ChevronUp, { className: "h-4 w-4" }) })));
12
13
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
13
14
  const SelectScrollDownButton = React.forwardRef(({ className, ...props }, ref) => (_jsx(SelectPrimitive.ScrollDownButton, { ref: ref, className: cn("flex cursor-default items-center justify-center py-1", className), ...props, children: _jsx(ChevronDown, { className: "h-4 w-4" }) })));
14
15
  SelectScrollDownButton.displayName =
15
16
  SelectPrimitive.ScrollDownButton.displayName;
16
- const SelectContent = React.forwardRef(({ className, children, position = "popper", ...props }, ref) => (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { ref: ref, className: cn("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-border bg-card text-txt shadow-md 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", position === "popper" &&
17
- "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className), position: position, ...props, children: [_jsx(SelectScrollUpButton, {}), _jsx(SelectPrimitive.Viewport, { className: cn("p-1", position === "popper" &&
18
- "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"), children: children }), _jsx(SelectScrollDownButton, {})] }) })));
17
+ const SelectContent = React.forwardRef(({ className, children, position = "popper", ...props }, ref) => (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { ref: ref, "data-floating-layer": SELECT_FLOATING_LAYER_NAME, className: cn("relative z-[12000] max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-border bg-card text-txt shadow-md 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", position === "popper" &&
18
+ "w-[var(--radix-select-trigger-width)] min-w-[var(--radix-select-trigger-width)] data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className), position: position, ...props, children: [_jsx(SelectScrollUpButton, {}), _jsx(SelectPrimitive.Viewport, { className: cn("p-1", position === "popper" &&
19
+ "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] max-w-[var(--radix-select-trigger-width)]"), children: children }), _jsx(SelectScrollDownButton, {})] }) })));
19
20
  SelectContent.displayName = SelectPrimitive.Content.displayName;
20
- const SelectLabel = React.forwardRef(({ className, ...props }, ref) => (_jsx(SelectPrimitive.Label, { ref: ref, className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className), ...props })));
21
+ const SelectLabel = React.forwardRef(({ className, ...props }, ref) => (_jsx(SelectPrimitive.Label, { ref: ref, className: cn("py-1.5 pl-2 pr-2 text-sm font-semibold", className), ...props })));
21
22
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
22
- const SelectItem = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(SelectPrimitive.Item, { ref: ref, className: cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-fg data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className), ...props, children: [_jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: _jsx(SelectPrimitive.ItemIndicator, { children: _jsx(Check, { className: "h-4 w-4" }) }) }), _jsx(SelectPrimitive.ItemText, { children: children })] })));
23
+ const SelectItem = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(SelectPrimitive.Item, { ref: ref, className: cn("flex w-full cursor-default select-none items-center gap-1.5 rounded-sm py-1.5 pl-2 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-fg data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className), ...props, children: [_jsx(SelectPrimitive.ItemText, { className: "min-w-0 flex-1", children: children }), _jsx("span", { className: "flex h-4 w-4 shrink-0 items-center justify-center", children: _jsx(SelectPrimitive.ItemIndicator, { children: _jsx(Check, { className: "h-3 w-3" }) }) })] })));
23
24
  SelectItem.displayName = SelectPrimitive.Item.displayName;
24
25
  const SelectSeparator = React.forwardRef(({ className, ...props }, ref) => (_jsx(SelectPrimitive.Separator, { ref: ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props })));
25
26
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,41 @@
1
+ import type * as React from "react";
2
+ import { FieldDescription, FieldLabel } from "./field";
3
+ import { type InputProps } from "./input";
4
+ import { SelectTrigger } from "./select";
5
+ import { type TextareaProps } from "./textarea";
6
+ export type SettingsSelectTriggerVariant = "compact" | "filter" | "soft" | "toolbar";
7
+ export type SettingsInputVariant = "compact" | "filter";
8
+ export interface SettingsSelectTriggerProps extends React.ComponentPropsWithoutRef<typeof SelectTrigger> {
9
+ variant?: SettingsSelectTriggerVariant;
10
+ className?: string;
11
+ children?: React.ReactNode;
12
+ }
13
+ export declare function SettingsSelectTrigger({ className, variant, ...props }: SettingsSelectTriggerProps): import("react/jsx-runtime").JSX.Element;
14
+ export interface SettingsInputProps extends Omit<InputProps, "variant"> {
15
+ variant?: SettingsInputVariant;
16
+ }
17
+ export declare function SettingsInput({ className, variant, ...props }: SettingsInputProps): import("react/jsx-runtime").JSX.Element;
18
+ export interface SettingsTextareaProps extends TextareaProps {
19
+ }
20
+ export declare function SettingsTextarea({ className, ...props }: SettingsTextareaProps): import("react/jsx-runtime").JSX.Element;
21
+ export interface SettingsSegmentedGroupProps extends React.HTMLAttributes<HTMLDivElement> {
22
+ }
23
+ export declare function SettingsSegmentedGroup({ className, ...props }: SettingsSegmentedGroupProps): import("react/jsx-runtime").JSX.Element;
24
+ export interface SettingsMutedTextProps extends React.HTMLAttributes<HTMLDivElement> {
25
+ }
26
+ export declare function SettingsMutedText({ className, ...props }: SettingsMutedTextProps): import("react/jsx-runtime").JSX.Element;
27
+ declare function SettingsField({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
28
+ declare function SettingsFieldLabel({ className, ...props }: React.ComponentPropsWithoutRef<typeof FieldLabel>): import("react/jsx-runtime").JSX.Element;
29
+ declare function SettingsFieldDescription({ className, ...props }: React.ComponentPropsWithoutRef<typeof FieldDescription>): import("react/jsx-runtime").JSX.Element;
30
+ export declare const SettingsControls: {
31
+ Input: typeof SettingsInput;
32
+ SelectTrigger: typeof SettingsSelectTrigger;
33
+ Textarea: typeof SettingsTextarea;
34
+ SegmentedGroup: typeof SettingsSegmentedGroup;
35
+ MutedText: typeof SettingsMutedText;
36
+ Field: typeof SettingsField;
37
+ FieldLabel: typeof SettingsFieldLabel;
38
+ FieldDescription: typeof SettingsFieldDescription;
39
+ };
40
+ export {};
41
+ //# sourceMappingURL=settings-controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-controls.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/settings-controls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,OAAO,EAAS,gBAAgB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,4BAA4B,GACpC,SAAS,GACT,QAAQ,GACR,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,CAAC;AA0BxD,MAAM,WAAW,0BACf,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,aAAa,CAAC;IAC5D,OAAO,CAAC,EAAE,4BAA4B,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,0BAA0B,2CAO5B;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;IACrE,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,kBAAkB,2CAOpB;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;CAAG;AAE/D,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,qBAAqB,2CAUvB;AAED,MAAM,WAAW,2BACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAEjD,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,2BAA2B,2CAU7B;AAED,MAAM,WAAW,sBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAEjD,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,sBAAsB,2CAIxB;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,2CAEtC;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,UAAU,CAAC,2CAOnD;AAED,iBAAS,wBAAwB,CAAC,EAChC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,gBAAgB,CAAC,2CAOzD;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;CAS5B,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/utils";
3
+ import { Field, FieldDescription, FieldLabel } from "./field";
4
+ import { Input } from "./input";
5
+ import { SelectTrigger } from "./select";
6
+ import { Textarea } from "./textarea";
7
+ function settingsSelectTriggerClassName(variant) {
8
+ switch (variant) {
9
+ case "filter":
10
+ return "h-10 rounded-xl border border-border/50 bg-bg/80 px-3 py-2 text-left text-sm text-txt shadow-sm transition-[border-color,box-shadow,background-color] focus-visible:border-accent focus-visible:ring-1 focus-visible:ring-accent";
11
+ case "soft":
12
+ return "rounded-lg border border-border bg-bg px-2.5 py-1.5 text-xs shadow-sm transition-[border-color,box-shadow,background-color] focus-visible:border-accent focus-visible:ring-1 focus-visible:ring-accent";
13
+ case "toolbar":
14
+ return "h-11 rounded-xl border-border/60 bg-bg/70 text-left shadow-sm";
15
+ default:
16
+ return "h-9 rounded-lg border border-border bg-card px-2.5 py-1.5 text-xs shadow-sm transition-[border-color,box-shadow,background-color] focus-visible:border-accent focus-visible:ring-1 focus-visible:ring-accent";
17
+ }
18
+ }
19
+ function settingsInputClassName(variant) {
20
+ switch (variant) {
21
+ case "filter":
22
+ return "h-10 rounded-xl border-border/50 bg-bg/80 text-sm text-txt shadow-sm";
23
+ default:
24
+ return "h-9 rounded-lg border border-border bg-card px-3 py-2 text-xs shadow-sm transition-[border-color,box-shadow,background-color] focus-visible:border-accent focus-visible:ring-1 focus-visible:ring-accent";
25
+ }
26
+ }
27
+ export function SettingsSelectTrigger({ className, variant = "compact", ...props }) {
28
+ return (_jsx(SelectTrigger, { className: cn(settingsSelectTriggerClassName(variant), className), ...props }));
29
+ }
30
+ export function SettingsInput({ className, variant = "compact", ...props }) {
31
+ return (_jsx(Input, { className: cn(settingsInputClassName(variant), className), ...props }));
32
+ }
33
+ export function SettingsTextarea({ className, ...props }) {
34
+ return (_jsx(Textarea, { className: cn("w-full rounded-xl border border-border/60 bg-bg/55 px-3 py-2 text-xs-tight font-mono shadow-sm transition-[border-color,box-shadow,background-color] focus-visible:border-accent focus-visible:ring-1 focus-visible:ring-accent", className), ...props }));
35
+ }
36
+ export function SettingsSegmentedGroup({ className, ...props }) {
37
+ return (_jsx("div", { className: cn("flex shrink-0 gap-1 rounded-xl border border-border bg-card/50 p-1", className), ...props }));
38
+ }
39
+ export function SettingsMutedText({ className, ...props }) {
40
+ return (_jsx("div", { className: cn("text-xs-tight text-muted", className), ...props }));
41
+ }
42
+ function SettingsField({ className, ...props }) {
43
+ return _jsx(Field, { className: cn("gap-1.5", className), ...props });
44
+ }
45
+ function SettingsFieldLabel({ className, ...props }) {
46
+ return (_jsx(FieldLabel, { className: cn("text-xs font-semibold text-txt", className), ...props }));
47
+ }
48
+ function SettingsFieldDescription({ className, ...props }) {
49
+ return (_jsx(FieldDescription, { className: cn("text-xs-tight text-muted", className), ...props }));
50
+ }
51
+ export const SettingsControls = {
52
+ Input: SettingsInput,
53
+ SelectTrigger: SettingsSelectTrigger,
54
+ Textarea: SettingsTextarea,
55
+ SegmentedGroup: SettingsSegmentedGroup,
56
+ MutedText: SettingsMutedText,
57
+ Field: SettingsField,
58
+ FieldLabel: SettingsFieldLabel,
59
+ FieldDescription: SettingsFieldDescription,
60
+ };
@@ -0,0 +1 @@
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;AAGH,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,9 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { cn } from "../../lib/utils";
4
- const Skeleton = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("animate-pulse rounded-md bg-secondary", className), ...props })));
4
+ const Skeleton = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("animate-pulse rounded-md bg-bg-accent", className), ...props })));
5
5
  Skeleton.displayName = "Skeleton";
6
- /* ── Skeleton Variants ───────────────────────────────────────────────── */
7
6
  function SkeletonLine({ width = "100%", className = "", }) {
8
7
  return (_jsx("div", { className: cn("h-4 animate-pulse rounded bg-bg-accent", className), style: { width } }));
9
8
  }
@@ -0,0 +1 @@
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"}
@@ -2,6 +2,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as SliderPrimitive from "@radix-ui/react-slider";
3
3
  import * as React from "react";
4
4
  import { cn } from "../../lib/utils";
5
- const Slider = React.forwardRef(({ className, ...props }, ref) => (_jsxs(SliderPrimitive.Root, { ref: ref, className: cn("relative flex w-full touch-none select-none items-center", className), ...props, children: [_jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: _jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }), _jsx(SliderPrimitive.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-bg 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" })] })));
5
+ const Slider = React.forwardRef(({ className, ...props }, ref) => (_jsxs(SliderPrimitive.Root, { ref: ref, className: cn("relative flex w-full touch-none select-none items-center", className), ...props, children: [_jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-input", children: _jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }), _jsx(SliderPrimitive.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-bg 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" })] })));
6
6
  Slider.displayName = SliderPrimitive.Root.displayName;
7
7
  export { Slider };
@@ -0,0 +1,2 @@
1
+ export { Toaster, toast } from "sonner";
2
+ //# sourceMappingURL=sonner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/sonner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1 @@
1
+ export { Toaster, toast } from "sonner";
@@ -0,0 +1 @@
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,7 +1,7 @@
1
1
  import { type VariantProps } from "class-variance-authority";
2
2
  import * as React from "react";
3
3
  declare const stackVariants: (props?: ({
4
- direction?: "row" | "col" | null | undefined;
4
+ direction?: "col" | "row" | null | undefined;
5
5
  align?: "center" | "end" | "baseline" | "start" | "stretch" | null | undefined;
6
6
  justify?: "center" | "end" | "start" | "between" | null | undefined;
7
7
  spacing?: "none" | "sm" | "lg" | "md" | null | undefined;
@@ -0,0 +1 @@
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,14 +1,21 @@
1
1
  import * as React from "react";
2
- export type StatusTone = "success" | "warning" | "danger" | "muted";
3
- export declare function statusToneForBoolean(condition: boolean, onTone?: StatusTone, offTone?: StatusTone): StatusTone;
2
+ export type StatusVariant = "success" | "warning" | "danger" | "muted";
3
+ export type StatusTone = StatusVariant;
4
+ export declare function statusToneForBoolean(condition: boolean, onTone?: StatusVariant, offTone?: StatusVariant): StatusVariant;
5
+ export declare function statusToneForState(status: string): StatusVariant;
6
+ export declare function statusLabelForState(status: string): string;
4
7
  export interface StatusBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
5
8
  label: string;
6
- tone: StatusTone;
9
+ variant?: StatusVariant;
10
+ tone?: StatusTone;
7
11
  withDot?: boolean;
8
12
  }
9
13
  export declare const StatusBadge: React.ForwardRefExoticComponent<StatusBadgeProps & React.RefAttributes<HTMLSpanElement>>;
10
14
  export interface StatusDotProps extends React.HTMLAttributes<HTMLSpanElement> {
11
- status: string;
15
+ /** Semantic status string — mapped to a variant internally. */
16
+ status?: string;
17
+ /** Direct variant override — when provided, `status` is ignored. */
18
+ tone?: StatusVariant;
12
19
  }
13
20
  export declare const StatusDot: React.ForwardRefExoticComponent<StatusDotProps & React.RefAttributes<HTMLSpanElement>>;
14
21
  export interface StatCardProps extends React.HTMLAttributes<HTMLDivElement> {
@@ -0,0 +1 @@
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,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AACvE,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AAEvC,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,OAAO,EAClB,MAAM,GAAE,aAAyB,EACjC,OAAO,GAAE,aAAuB,GAC/B,aAAa,CAEf;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CA0BhE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED,MAAM,WAAW,gBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,WAAW,0FAqCvB,CAAC;AAGF,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC3E,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,eAAO,MAAM,SAAS,wFA4BrB,CAAC;AAGF,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"}
@@ -0,0 +1,70 @@
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 statusToneForBoolean(condition, onTone = "success", offTone = "muted") {
5
+ return condition ? onTone : offTone;
6
+ }
7
+ export function statusToneForState(status) {
8
+ const normalized = status.trim().toLowerCase();
9
+ if (normalized === "success" ||
10
+ normalized === "completed" ||
11
+ normalized === "connected" ||
12
+ normalized === "approved" ||
13
+ normalized === "signed" ||
14
+ normalized === "broadcast" ||
15
+ normalized === "confirmed" ||
16
+ normalized === "ready") {
17
+ return "success";
18
+ }
19
+ if (normalized === "warning" || normalized === "pending") {
20
+ return "warning";
21
+ }
22
+ if (normalized === "error" ||
23
+ normalized === "failed" ||
24
+ normalized === "denied" ||
25
+ normalized === "rejected") {
26
+ return "danger";
27
+ }
28
+ return "muted";
29
+ }
30
+ export function statusLabelForState(status) {
31
+ const normalized = status.trim().replace(/[_-]+/g, " ");
32
+ if (!normalized)
33
+ return status;
34
+ return normalized.replace(/\b\w/g, (match) => match.toUpperCase());
35
+ }
36
+ export const StatusBadge = React.forwardRef(({ label, variant, tone, withDot = false, className, ...props }, ref) => {
37
+ const resolvedVariant = variant ?? tone ?? "muted";
38
+ return (_jsxs("span", { ref: ref, className: cn("inline-flex items-center gap-1 rounded-sm border px-2 py-0.5 text-2xs font-bold uppercase", resolvedVariant === "success"
39
+ ? "border-ok/35 bg-ok/12 text-ok"
40
+ : resolvedVariant === "warning"
41
+ ? "border-warn/40 bg-warn/14 text-warn"
42
+ : resolvedVariant === "danger"
43
+ ? "border-destructive/35 bg-destructive/12 text-destructive"
44
+ : "border-border bg-bg-accent text-muted-strong", className), ...props, children: [withDot && (_jsx("span", { className: cn("h-1.5 w-1.5 rounded-full", resolvedVariant === "success"
45
+ ? "bg-ok"
46
+ : resolvedVariant === "warning"
47
+ ? "bg-warn"
48
+ : resolvedVariant === "danger"
49
+ ? "bg-destructive"
50
+ : "bg-muted") })), label] }));
51
+ });
52
+ StatusBadge.displayName = "StatusBadge";
53
+ export const StatusDot = React.forwardRef(({ status, tone: toneProp, className, ...props }, ref) => {
54
+ const variant = toneProp ??
55
+ (status === "success" || status === "completed" || status === "connected"
56
+ ? "success"
57
+ : status === "error" || status === "failed" || status === "denied"
58
+ ? "danger"
59
+ : "muted");
60
+ return (_jsx("span", { ref: ref, className: cn("inline-block h-2 w-2 rounded-full", variant === "success"
61
+ ? "bg-ok"
62
+ : variant === "warning"
63
+ ? "bg-warn"
64
+ : variant === "danger"
65
+ ? "bg-destructive"
66
+ : "bg-muted", className), ...props }));
67
+ });
68
+ StatusDot.displayName = "StatusDot";
69
+ 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-2xs uppercase tracking-wide text-muted", children: label })] })));
70
+ StatCard.displayName = "StatCard";
@@ -0,0 +1 @@
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,8JAmBV,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } 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, children, ...props }, ref) => (_jsxs(SwitchPrimitives.Root, { className: cn("peer inline-flex h-6 w-11 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-ok 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-card shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0") }), children] })));
6
+ Switch.displayName = SwitchPrimitives.Root.displayName;
7
+ export { Switch };
@@ -0,0 +1 @@
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"}
@@ -3,7 +3,7 @@ import * as TabsPrimitive from "@radix-ui/react-tabs";
3
3
  import * as React from "react";
4
4
  import { cn } from "../../lib/utils";
5
5
  const Tabs = TabsPrimitive.Root;
6
- const TabsList = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.List, { ref: ref, className: cn("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-fg", className), ...props })));
6
+ const TabsList = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.List, { ref: ref, className: cn("inline-flex h-10 items-center justify-center rounded-md bg-bg-accent p-1 text-muted", className), ...props })));
7
7
  TabsList.displayName = TabsPrimitive.List.displayName;
8
8
  const TabsTrigger = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.Trigger, { ref: ref, className: cn("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-bg transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-bg data-[state=active]:text-txt data-[state=active]:shadow-sm", className), ...props })));
9
9
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
@@ -0,0 +1,12 @@
1
+ export interface TagEditorProps {
2
+ items: string[];
3
+ onChange: (items: string[]) => void;
4
+ label?: string;
5
+ placeholder?: string;
6
+ className?: string;
7
+ maxItems?: number;
8
+ addLabel?: string;
9
+ removeLabel?: string;
10
+ }
11
+ export declare function TagEditor({ items, onChange, label, placeholder, className, maxItems, addLabel, removeLabel, }: TagEditorProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=tag-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-editor.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/tag-editor.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAA4B,EAC5B,SAAS,EACT,QAAQ,EACR,QAAgB,EAChB,WAAsB,GACvB,EAAE,cAAc,2CAwEhB"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { X } from "lucide-react";
3
+ import { useCallback, useMemo, useState } from "react";
4
+ import { cn } from "../../lib/utils";
5
+ import { Button } from "./button";
6
+ import { Input } from "./input";
7
+ import { Label } from "./label";
8
+ function normalizeTagValue(value) {
9
+ return value.trim();
10
+ }
11
+ export function TagEditor({ items, onChange, label, placeholder = "Add a tag...", className, maxItems, addLabel = "Add", removeLabel = "Remove", }) {
12
+ const [draft, setDraft] = useState("");
13
+ const normalizedItems = useMemo(() => items.map((item) => normalizeTagValue(item)).filter(Boolean), [items]);
14
+ const itemSet = useMemo(() => new Set(normalizedItems.map((item) => item.toLowerCase())), [normalizedItems]);
15
+ const canAddMore = typeof maxItems !== "number" || normalizedItems.length < maxItems;
16
+ const commitDraft = useCallback(() => {
17
+ const next = normalizeTagValue(draft);
18
+ if (!next || !canAddMore || itemSet.has(next.toLowerCase())) {
19
+ setDraft("");
20
+ return;
21
+ }
22
+ onChange([...normalizedItems, next]);
23
+ setDraft("");
24
+ }, [canAddMore, draft, itemSet, normalizedItems, onChange]);
25
+ const removeItem = useCallback((item) => {
26
+ onChange(normalizedItems.filter((candidate) => candidate !== item));
27
+ }, [normalizedItems, onChange]);
28
+ return (_jsxs("div", { className: cn("flex flex-col gap-2", className), children: [label ? _jsx(Label, { children: label }) : null, _jsx("div", { className: "flex flex-wrap gap-2", children: normalizedItems.map((item) => (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full border border-border/50 bg-bg-accent px-2.5 py-1 text-xs text-txt", children: [_jsx("span", { children: item }), _jsx(Button, { type: "button", size: "icon", variant: "ghost", className: "h-4 w-4 rounded-full text-muted hover:text-txt", "aria-label": `${removeLabel} ${item}`, onClick: () => removeItem(item), children: _jsx(X, { className: "h-3 w-3" }) })] }, item))) }), _jsx(Input, { "aria-label": label ?? addLabel, value: draft, onChange: (event) => setDraft(event.target.value), onKeyDown: (event) => {
29
+ if (event.key !== "Enter" && event.key !== ",")
30
+ return;
31
+ event.preventDefault();
32
+ commitDraft();
33
+ }, onBlur: commitDraft, placeholder: canAddMore ? placeholder : "Tag limit reached", disabled: !canAddMore })] }));
34
+ }
@@ -0,0 +1,3 @@
1
+ export type { TagEditorProps as TagInputProps } from "./tag-editor";
2
+ export { TagEditor as TagInput } from "./tag-editor";
3
+ //# sourceMappingURL=tag-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-input.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/tag-input.tsx"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ export { TagEditor as TagInput } from "./tag-editor";
@@ -0,0 +1,12 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+ declare const textareaVariants: (props?: ({
4
+ variant?: "form" | "default" | "config" | null | undefined;
5
+ density?: "default" | "compact" | "relaxed" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement>, VariantProps<typeof textareaVariants> {
8
+ hasError?: boolean;
9
+ }
10
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
11
+ export { Textarea, textareaVariants };
12
+ //# sourceMappingURL=textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,gBAAgB;;;8EAsBrB,CAAC;AAEF,MAAM,WAAW,aACf,SAAQ,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EACvD,YAAY,CAAC,OAAO,gBAAgB,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,QAAQ,2FAeb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import * as React from "react";
4
+ import { cn } from "../../lib/utils";
5
+ const textareaVariants = cva("w-full border text-sm resize-y transition-[border-color,box-shadow,background-color] disabled:cursor-not-allowed disabled:opacity-50", {
6
+ variants: {
7
+ variant: {
8
+ default: "flex rounded-md border-input bg-bg px-3 py-2 ring-offset-bg placeholder:text-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
9
+ form: "rounded-2xl border-border/60 bg-bg/70 px-4 py-3 outline-none shadow-sm focus-visible:border-accent focus-visible:ring-1 focus-visible:ring-accent",
10
+ config: "border-border bg-card font-[var(--mono)] placeholder:text-muted placeholder:opacity-60 focus:border-accent focus:outline-none focus:ring-1 focus:ring-accent",
11
+ },
12
+ density: {
13
+ default: "min-h-[80px]",
14
+ compact: "min-h-[64px] px-2 py-1.5 text-xs",
15
+ relaxed: "min-h-[132px]",
16
+ },
17
+ },
18
+ defaultVariants: {
19
+ variant: "default",
20
+ density: "default",
21
+ },
22
+ });
23
+ const Textarea = React.forwardRef(({ className, variant, density, hasError, ...props }, ref) => {
24
+ return (_jsx("textarea", { className: cn(textareaVariants({ variant, density }), hasError &&
25
+ "border-destructive bg-[color-mix(in_srgb,var(--destructive)_3%,var(--card))]", className), ref: ref, ...props }));
26
+ });
27
+ Textarea.displayName = "Textarea";
28
+ export { Textarea, textareaVariants };
@@ -1,10 +1,3 @@
1
- /**
2
- * ThemedSelect — custom dropdown with grouped options.
3
- *
4
- * A generic, fully-controlled select component that supports grouped option
5
- * lists and optional hint text per item. Has no dependency on any app-level
6
- * context; all state is passed in as props.
7
- */
8
1
  export interface ThemedSelectGroup<T extends string = string> {
9
2
  label: string;
10
3
  items: {
@@ -22,6 +15,8 @@ export interface ThemedSelectProps<T extends string = string> {
22
15
  className?: string;
23
16
  triggerClassName?: string;
24
17
  menuClassName?: string;
18
+ ariaLabel?: string;
19
+ ariaLabelledBy?: string;
25
20
  }
26
- export declare function ThemedSelect<T extends string>({ value, groups, onChange, placeholder, menuPlacement, className, triggerClassName, menuClassName, }: ThemedSelectProps<T>): import("react/jsx-runtime").JSX.Element;
21
+ export declare function ThemedSelect<T extends string>({ value, groups, onChange, placeholder, menuPlacement, className, triggerClassName, menuClassName, ariaLabel, ariaLabelledBy, }: ThemedSelectProps<T>): import("react/jsx-runtime").JSX.Element;
27
22
  //# sourceMappingURL=themed-select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themed-select.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/themed-select.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QAAE,EAAE,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC1D,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AASD,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,EAC7C,KAAK,EACL,MAAM,EACN,QAAQ,EACR,WAAuB,EACvB,aAAwB,EACxB,SAAc,EACd,gBAAqB,EACrB,aAAkB,EAClB,SAAS,EACT,cAAc,GACf,EAAE,iBAAiB,CAAC,CAAC,CAAC,2CA0OtB"}