@vertesia/ui 0.78.0 → 0.79.1

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 (409) hide show
  1. package/lib/esm/core/components/Panel.js +8 -0
  2. package/lib/esm/core/components/Panel.js.map +1 -0
  3. package/lib/esm/core/components/SelectBox.js +1 -1
  4. package/lib/esm/core/components/SelectBox.js.map +1 -1
  5. package/lib/esm/core/components/SelectList.js +18 -13
  6. package/lib/esm/core/components/SelectList.js.map +1 -1
  7. package/lib/esm/core/components/SidePanel.js +2 -2
  8. package/lib/esm/core/components/SidePanel.js.map +1 -1
  9. package/lib/esm/core/components/index.js +1 -1
  10. package/lib/esm/core/components/index.js.map +1 -1
  11. package/lib/esm/core/components/shadcn/breadcrumb.js +29 -8
  12. package/lib/esm/core/components/shadcn/breadcrumb.js.map +1 -1
  13. package/lib/esm/core/components/shadcn/button.js +3 -2
  14. package/lib/esm/core/components/shadcn/button.js.map +1 -1
  15. package/lib/esm/core/components/shadcn/filters/filterBar.js +41 -14
  16. package/lib/esm/core/components/shadcn/filters/filterBar.js.map +1 -1
  17. package/lib/esm/core/components/shadcn/index.js +2 -0
  18. package/lib/esm/core/components/shadcn/index.js.map +1 -1
  19. package/lib/esm/core/components/shadcn/input.js +4 -1
  20. package/lib/esm/core/components/shadcn/input.js.map +1 -1
  21. package/lib/esm/core/components/shadcn/resizeable.js +15 -0
  22. package/lib/esm/core/components/shadcn/resizeable.js.map +1 -0
  23. package/lib/esm/core/components/shadcn/selectBox.js +15 -9
  24. package/lib/esm/core/components/shadcn/selectBox.js.map +1 -1
  25. package/lib/esm/core/components/shadcn/tabs.js +20 -8
  26. package/lib/esm/core/components/shadcn/tabs.js.map +1 -1
  27. package/lib/esm/core/components/shadcn/textarea.js +7 -0
  28. package/lib/esm/core/components/shadcn/textarea.js.map +1 -0
  29. package/lib/esm/core/components/table/index.js +1 -1
  30. package/lib/esm/core/components/table/index.js.map +1 -1
  31. package/lib/esm/core/hooks/CompositeState.js +139 -1
  32. package/lib/esm/core/hooks/CompositeState.js.map +1 -1
  33. package/lib/esm/core/hooks/index.js +1 -0
  34. package/lib/esm/core/hooks/index.js.map +1 -1
  35. package/lib/esm/core/hooks/useScrollableSearch.js +92 -0
  36. package/lib/esm/core/hooks/useScrollableSearch.js.map +1 -0
  37. package/lib/esm/env/index.js +1 -1
  38. package/lib/esm/env/index.js.map +1 -1
  39. package/lib/esm/features/agent/PayloadBuilder.js +80 -55
  40. package/lib/esm/features/agent/PayloadBuilder.js.map +1 -1
  41. package/lib/esm/features/agent/chat/ModernAgentConversation.js +22 -24
  42. package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -1
  43. package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +2 -3
  44. package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
  45. package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js +2 -2
  46. package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
  47. package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js +15 -20
  48. package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js.map +1 -1
  49. package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js +1 -0
  50. package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js.map +1 -1
  51. package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js +3 -3
  52. package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js.map +1 -1
  53. package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +6 -6
  54. package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +1 -1
  55. package/lib/esm/features/facets/CollectionsFacetsNav.js +85 -0
  56. package/lib/esm/features/facets/CollectionsFacetsNav.js.map +1 -0
  57. package/lib/esm/features/facets/DocumentsFacetsNav.js +19 -7
  58. package/lib/esm/features/facets/DocumentsFacetsNav.js.map +1 -1
  59. package/lib/esm/features/facets/EnvironmentFacet.js +1 -1
  60. package/lib/esm/features/facets/EnvironmentFacet.js.map +1 -1
  61. package/lib/esm/features/facets/InteractionsFacetsNav.js +88 -0
  62. package/lib/esm/features/facets/InteractionsFacetsNav.js.map +1 -0
  63. package/lib/esm/features/facets/PromptsFacetsNav.js +80 -0
  64. package/lib/esm/features/facets/PromptsFacetsNav.js.map +1 -0
  65. package/lib/esm/features/facets/RunsFacetsNav.js +28 -6
  66. package/lib/esm/features/facets/RunsFacetsNav.js.map +1 -1
  67. package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js +7 -5
  68. package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js.map +1 -1
  69. package/lib/esm/features/facets/index.js +10 -8
  70. package/lib/esm/features/facets/index.js.map +1 -1
  71. package/lib/esm/features/facets/utils/SearchInterface.js +2 -0
  72. package/lib/esm/features/facets/utils/SearchInterface.js.map +1 -0
  73. package/lib/esm/features/facets/utils/StringFacet.js.map +1 -0
  74. package/lib/esm/features/facets/utils/StringListFacet.js.map +1 -0
  75. package/lib/esm/features/facets/utils/TypeFacet.js.map +1 -0
  76. package/lib/esm/features/facets/utils/VEnvironmentFacet.js.map +1 -0
  77. package/lib/esm/features/facets/utils/VInteractionFacet.js.map +1 -0
  78. package/lib/esm/features/facets/utils/VStringFacet.js.map +1 -0
  79. package/lib/esm/features/facets/{VTypeFacet.js → utils/VTypeFacet.js} +9 -4
  80. package/lib/esm/features/facets/utils/VTypeFacet.js.map +1 -0
  81. package/lib/esm/features/facets/{VUserFacet.js → utils/VUserFacet.js} +1 -1
  82. package/lib/esm/features/facets/utils/VUserFacet.js.map +1 -0
  83. package/lib/esm/features/facets/utils/utils.js.map +1 -0
  84. package/lib/esm/features/layout/GenericPageNavHeader.js +58 -5
  85. package/lib/esm/features/layout/GenericPageNavHeader.js.map +1 -1
  86. package/lib/esm/features/store/collections/BrowseCollectionView.js +3 -0
  87. package/lib/esm/features/store/collections/BrowseCollectionView.js.map +1 -1
  88. package/lib/esm/features/store/collections/CreateCollection.js +2 -2
  89. package/lib/esm/features/store/collections/CreateCollection.js.map +1 -1
  90. package/lib/esm/features/store/collections/EditCollectionView.js +43 -31
  91. package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -1
  92. package/lib/esm/features/store/collections/SelectCollection.js +46 -16
  93. package/lib/esm/features/store/collections/SelectCollection.js.map +1 -1
  94. package/lib/esm/features/store/objects/DocumentSearchResults.js +43 -13
  95. package/lib/esm/features/store/objects/DocumentSearchResults.js.map +1 -1
  96. package/lib/esm/features/store/objects/DocumentTable.js +6 -6
  97. package/lib/esm/features/store/objects/DocumentTable.js.map +1 -1
  98. package/lib/esm/features/store/objects/components/ContentOverview.js +225 -87
  99. package/lib/esm/features/store/objects/components/ContentOverview.js.map +1 -1
  100. package/lib/esm/features/store/objects/components/DocumentIcon.js +11 -3
  101. package/lib/esm/features/store/objects/components/DocumentIcon.js.map +1 -1
  102. package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js +11 -2
  103. package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js.map +1 -1
  104. package/lib/esm/features/store/objects/components/useDownloadObject.js +2 -2
  105. package/lib/esm/features/store/objects/components/useDownloadObject.js.map +1 -1
  106. package/lib/esm/features/store/objects/layout/DocumentTableColumn.js +13 -1
  107. package/lib/esm/features/store/objects/layout/DocumentTableColumn.js.map +1 -1
  108. package/lib/esm/features/store/objects/layout/documentLayout.js +7 -8
  109. package/lib/esm/features/store/objects/layout/documentLayout.js.map +1 -1
  110. package/lib/esm/features/store/objects/layout/renderers.js +28 -12
  111. package/lib/esm/features/store/objects/layout/renderers.js.map +1 -1
  112. package/lib/esm/features/store/objects/search/DocumentSearchContext.js +5 -1
  113. package/lib/esm/features/store/objects/search/DocumentSearchContext.js.map +1 -1
  114. package/lib/esm/features/store/objects/search/DocumentSearchProvider.js +1 -1
  115. package/lib/esm/features/store/objects/search/DocumentSearchProvider.js.map +1 -1
  116. package/lib/esm/features/store/objects/selection/ObjectsActionContext.js +3 -2
  117. package/lib/esm/features/store/objects/selection/ObjectsActionContext.js.map +1 -1
  118. package/lib/esm/features/store/objects/selection/SelectionActions.js +2 -0
  119. package/lib/esm/features/store/objects/selection/SelectionActions.js.map +1 -1
  120. package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +12 -4
  121. package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +1 -1
  122. package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js +20 -2
  123. package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js.map +1 -1
  124. package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +16 -8
  125. package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
  126. package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js +1 -1
  127. package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js.map +1 -1
  128. package/lib/esm/features/store/types/ObjectSchemaEditor.js +1 -1
  129. package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +1 -1
  130. package/lib/esm/features/user/UserInfo.js +35 -1
  131. package/lib/esm/features/user/UserInfo.js.map +1 -1
  132. package/lib/esm/router/HistoryNavigator.js +25 -2
  133. package/lib/esm/router/HistoryNavigator.js.map +1 -1
  134. package/lib/esm/router/Nav.js +3 -3
  135. package/lib/esm/router/Nav.js.map +1 -1
  136. package/lib/esm/session/UserSession.js +1 -0
  137. package/lib/esm/session/UserSession.js.map +1 -1
  138. package/lib/esm/session/UserSessionProvider.js +9 -2
  139. package/lib/esm/session/UserSessionProvider.js.map +1 -1
  140. package/lib/esm/session/auth/composable.js +66 -67
  141. package/lib/esm/session/auth/composable.js.map +1 -1
  142. package/lib/esm/shell/login/UserInfo.js +1 -1
  143. package/lib/esm/shell/login/UserInfo.js.map +1 -1
  144. package/lib/esm/widgets/form/Form.js +17 -30
  145. package/lib/esm/widgets/form/Form.js.map +1 -1
  146. package/lib/esm/widgets/form/FormContext.js +4 -2
  147. package/lib/esm/widgets/form/FormContext.js.map +1 -1
  148. package/lib/esm/widgets/form/ManagedObject.js +4 -0
  149. package/lib/esm/widgets/form/ManagedObject.js.map +1 -1
  150. package/lib/esm/widgets/form/fields.js +4 -3
  151. package/lib/esm/widgets/form/fields.js.map +1 -1
  152. package/lib/esm/widgets/form/inputs.js +2 -0
  153. package/lib/esm/widgets/form/inputs.js.map +1 -1
  154. package/lib/esm/widgets/schema-editor/index.js +0 -1
  155. package/lib/esm/widgets/schema-editor/index.js.map +1 -1
  156. package/lib/tsconfig.tsbuildinfo +1 -1
  157. package/lib/types/core/components/Panel.d.ts +11 -0
  158. package/lib/types/core/components/Panel.d.ts.map +1 -0
  159. package/lib/types/core/components/SelectList.d.ts +2 -1
  160. package/lib/types/core/components/SelectList.d.ts.map +1 -1
  161. package/lib/types/core/components/SidePanel.d.ts.map +1 -1
  162. package/lib/types/core/components/index.d.ts +1 -1
  163. package/lib/types/core/components/index.d.ts.map +1 -1
  164. package/lib/types/core/components/shadcn/breadcrumb.d.ts +3 -2
  165. package/lib/types/core/components/shadcn/breadcrumb.d.ts.map +1 -1
  166. package/lib/types/core/components/shadcn/button.d.ts.map +1 -1
  167. package/lib/types/core/components/shadcn/filters/filterBar.d.ts.map +1 -1
  168. package/lib/types/core/components/shadcn/index.d.ts +2 -0
  169. package/lib/types/core/components/shadcn/index.d.ts.map +1 -1
  170. package/lib/types/core/components/shadcn/input.d.ts.map +1 -1
  171. package/lib/types/core/components/shadcn/resizeable.d.ts +9 -0
  172. package/lib/types/core/components/shadcn/resizeable.d.ts.map +1 -0
  173. package/lib/types/core/components/shadcn/selectBox.d.ts +3 -2
  174. package/lib/types/core/components/shadcn/selectBox.d.ts.map +1 -1
  175. package/lib/types/core/components/shadcn/tabs.d.ts +2 -1
  176. package/lib/types/core/components/shadcn/tabs.d.ts.map +1 -1
  177. package/lib/types/core/components/shadcn/textarea.d.ts +4 -0
  178. package/lib/types/core/components/shadcn/textarea.d.ts.map +1 -0
  179. package/lib/types/core/hooks/CompositeState.d.ts +115 -6
  180. package/lib/types/core/hooks/CompositeState.d.ts.map +1 -1
  181. package/lib/types/core/hooks/index.d.ts +1 -0
  182. package/lib/types/core/hooks/index.d.ts.map +1 -1
  183. package/lib/types/core/hooks/useScrollableSearch.d.ts +82 -0
  184. package/lib/types/core/hooks/useScrollableSearch.d.ts.map +1 -0
  185. package/lib/types/env/index.d.ts +3 -1
  186. package/lib/types/env/index.d.ts.map +1 -1
  187. package/lib/types/features/agent/PayloadBuilder.d.ts +11 -19
  188. package/lib/types/features/agent/PayloadBuilder.d.ts.map +1 -1
  189. package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
  190. package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +1 -1
  191. package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
  192. package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -1
  193. package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts.map +1 -1
  194. package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts.map +1 -1
  195. package/lib/types/features/facets/CollectionsFacetsNav.d.ts +14 -0
  196. package/lib/types/features/facets/CollectionsFacetsNav.d.ts.map +1 -0
  197. package/lib/types/features/facets/DocumentsFacetsNav.d.ts +1 -1
  198. package/lib/types/features/facets/DocumentsFacetsNav.d.ts.map +1 -1
  199. package/lib/types/features/facets/InteractionsFacetsNav.d.ts +14 -0
  200. package/lib/types/features/facets/InteractionsFacetsNav.d.ts.map +1 -0
  201. package/lib/types/features/facets/PromptsFacetsNav.d.ts +15 -0
  202. package/lib/types/features/facets/PromptsFacetsNav.d.ts.map +1 -0
  203. package/lib/types/features/facets/RunsFacetsNav.d.ts +1 -1
  204. package/lib/types/features/facets/RunsFacetsNav.d.ts.map +1 -1
  205. package/lib/types/features/facets/WorkflowExecutionsFacetsNav.d.ts +1 -1
  206. package/lib/types/features/facets/WorkflowExecutionsFacetsNav.d.ts.map +1 -1
  207. package/lib/types/features/facets/index.d.ts +10 -8
  208. package/lib/types/features/facets/index.d.ts.map +1 -1
  209. package/lib/types/features/facets/utils/SearchInterface.d.ts +14 -0
  210. package/lib/types/features/facets/utils/SearchInterface.d.ts.map +1 -0
  211. package/lib/types/features/facets/utils/StringFacet.d.ts.map +1 -0
  212. package/lib/types/features/facets/utils/StringListFacet.d.ts.map +1 -0
  213. package/lib/types/features/facets/utils/TypeFacet.d.ts.map +1 -0
  214. package/lib/types/features/facets/utils/VEnvironmentFacet.d.ts.map +1 -0
  215. package/lib/types/features/facets/utils/VInteractionFacet.d.ts.map +1 -0
  216. package/lib/types/features/facets/utils/VStringFacet.d.ts.map +1 -0
  217. package/lib/types/features/facets/{VTypeFacet.d.ts → utils/VTypeFacet.d.ts} +2 -1
  218. package/lib/types/features/facets/utils/VTypeFacet.d.ts.map +1 -0
  219. package/lib/types/features/facets/utils/VUserFacet.d.ts.map +1 -0
  220. package/lib/types/features/facets/utils/utils.d.ts.map +1 -0
  221. package/lib/types/features/layout/GenericPageNavHeader.d.ts +2 -1
  222. package/lib/types/features/layout/GenericPageNavHeader.d.ts.map +1 -1
  223. package/lib/types/features/store/collections/BrowseCollectionView.d.ts.map +1 -1
  224. package/lib/types/features/store/collections/CreateCollection.d.ts.map +1 -1
  225. package/lib/types/features/store/collections/EditCollectionView.d.ts.map +1 -1
  226. package/lib/types/features/store/collections/SelectCollection.d.ts +12 -8
  227. package/lib/types/features/store/collections/SelectCollection.d.ts.map +1 -1
  228. package/lib/types/features/store/objects/DocumentSearchResults.d.ts.map +1 -1
  229. package/lib/types/features/store/objects/DocumentTable.d.ts +4 -0
  230. package/lib/types/features/store/objects/DocumentTable.d.ts.map +1 -1
  231. package/lib/types/features/store/objects/components/ContentOverview.d.ts.map +1 -1
  232. package/lib/types/features/store/objects/components/DocumentIcon.d.ts +7 -1
  233. package/lib/types/features/store/objects/components/DocumentIcon.d.ts.map +1 -1
  234. package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts.map +1 -1
  235. package/lib/types/features/store/objects/components/useDownloadObject.d.ts +1 -1
  236. package/lib/types/features/store/objects/components/useDownloadObject.d.ts.map +1 -1
  237. package/lib/types/features/store/objects/layout/DocumentTableColumn.d.ts +2 -1
  238. package/lib/types/features/store/objects/layout/DocumentTableColumn.d.ts.map +1 -1
  239. package/lib/types/features/store/objects/layout/documentLayout.d.ts +4 -2
  240. package/lib/types/features/store/objects/layout/documentLayout.d.ts.map +1 -1
  241. package/lib/types/features/store/objects/layout/renderers.d.ts +1 -1
  242. package/lib/types/features/store/objects/layout/renderers.d.ts.map +1 -1
  243. package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts +2 -3
  244. package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -1
  245. package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts.map +1 -1
  246. package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +1 -1
  247. package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts +1 -0
  248. package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +1 -1
  249. package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts.map +1 -1
  250. package/lib/types/features/user/UserInfo.d.ts +12 -1
  251. package/lib/types/features/user/UserInfo.d.ts.map +1 -1
  252. package/lib/types/router/HistoryNavigator.d.ts.map +1 -1
  253. package/lib/types/router/Nav.d.ts +2 -1
  254. package/lib/types/router/Nav.d.ts.map +1 -1
  255. package/lib/types/session/UserSession.d.ts.map +1 -1
  256. package/lib/types/session/UserSessionProvider.d.ts.map +1 -1
  257. package/lib/types/session/auth/composable.d.ts.map +1 -1
  258. package/lib/types/widgets/form/Form.d.ts +2 -1
  259. package/lib/types/widgets/form/Form.d.ts.map +1 -1
  260. package/lib/types/widgets/form/FormContext.d.ts +5 -2
  261. package/lib/types/widgets/form/FormContext.d.ts.map +1 -1
  262. package/lib/types/widgets/form/ManagedObject.d.ts.map +1 -1
  263. package/lib/types/widgets/form/fields.d.ts +2 -2
  264. package/lib/types/widgets/form/fields.d.ts.map +1 -1
  265. package/lib/types/widgets/form/inputs.d.ts.map +1 -1
  266. package/lib/types/widgets/schema-editor/index.d.ts +0 -1
  267. package/lib/types/widgets/schema-editor/index.d.ts.map +1 -1
  268. package/lib/vertesia-ui-core.js +1 -1
  269. package/lib/vertesia-ui-core.js.map +1 -1
  270. package/lib/vertesia-ui-env.js +1 -1
  271. package/lib/vertesia-ui-env.js.map +1 -1
  272. package/lib/vertesia-ui-features.js +1 -1
  273. package/lib/vertesia-ui-features.js.map +1 -1
  274. package/lib/vertesia-ui-router.js +1 -1
  275. package/lib/vertesia-ui-router.js.map +1 -1
  276. package/lib/vertesia-ui-session.js +1 -1
  277. package/lib/vertesia-ui-session.js.map +1 -1
  278. package/lib/vertesia-ui-shell.js +1 -1
  279. package/lib/vertesia-ui-shell.js.map +1 -1
  280. package/lib/vertesia-ui-widgets.js +1 -1
  281. package/lib/vertesia-ui-widgets.js.map +1 -1
  282. package/package.json +166 -165
  283. package/src/core/components/Panel.tsx +34 -0
  284. package/src/core/components/SelectList.tsx +11 -1
  285. package/src/core/components/SidePanel.tsx +18 -13
  286. package/src/core/components/index.ts +1 -1
  287. package/src/core/components/shadcn/breadcrumb.tsx +49 -30
  288. package/src/core/components/shadcn/button.tsx +3 -2
  289. package/src/core/components/shadcn/filters/filterBar.tsx +49 -23
  290. package/src/core/components/shadcn/index.ts +2 -0
  291. package/src/core/components/shadcn/input.tsx +10 -7
  292. package/src/core/components/shadcn/resizeable.tsx +54 -0
  293. package/src/core/components/shadcn/selectBox.tsx +87 -67
  294. package/src/core/components/shadcn/tabs.tsx +25 -8
  295. package/src/core/components/shadcn/textarea.tsx +21 -0
  296. package/src/core/components/table/index.tsx +1 -1
  297. package/src/core/hooks/index.ts +1 -0
  298. package/src/core/hooks/useScrollableSearch.tsx +193 -0
  299. package/src/features/agent/chat/ModernAgentConversation.tsx +109 -118
  300. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +2 -22
  301. package/src/features/agent/chat/ModernAgentOutput/Header.tsx +1 -9
  302. package/src/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.tsx +39 -55
  303. package/src/features/agent/chat/ModernAgentOutput/PlanPanel.tsx +1 -0
  304. package/src/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.tsx +8 -8
  305. package/src/features/agent/chat/ModernAgentOutput/WorkstreamTabs.tsx +8 -8
  306. package/src/features/facets/CollectionsFacetsNav.tsx +115 -0
  307. package/src/features/facets/DocumentsFacetsNav.tsx +22 -11
  308. package/src/features/facets/EnvironmentFacet.tsx +1 -1
  309. package/src/features/facets/InteractionsFacetsNav.tsx +121 -0
  310. package/src/features/facets/PromptsFacetsNav.tsx +110 -0
  311. package/src/features/facets/RunsFacetsNav.tsx +40 -9
  312. package/src/features/facets/WorkflowExecutionsFacetsNav.tsx +10 -8
  313. package/src/features/facets/index.ts +11 -9
  314. package/src/features/facets/utils/SearchInterface.tsx +12 -0
  315. package/src/features/facets/{VTypeFacet.tsx → utils/VTypeFacet.tsx} +12 -5
  316. package/src/features/facets/{VUserFacet.tsx → utils/VUserFacet.tsx} +1 -1
  317. package/src/features/layout/GenericPageNavHeader.tsx +73 -10
  318. package/src/features/store/collections/BrowseCollectionView.tsx +4 -0
  319. package/src/features/store/collections/CreateCollection.tsx +3 -4
  320. package/src/features/store/collections/EditCollectionView.tsx +104 -85
  321. package/src/features/store/collections/SelectCollection.tsx +214 -29
  322. package/src/features/store/objects/DocumentSearchResults.tsx +98 -27
  323. package/src/features/store/objects/DocumentTable.tsx +14 -4
  324. package/src/features/store/objects/components/ContentOverview.tsx +536 -267
  325. package/src/features/store/objects/components/DocumentIcon.tsx +42 -13
  326. package/src/features/store/objects/components/SaveVersionConfirmModal.tsx +12 -2
  327. package/src/features/store/objects/layout/DocumentTableColumn.tsx +16 -1
  328. package/src/features/store/objects/layout/documentLayout.tsx +10 -12
  329. package/src/features/store/objects/layout/knowledge.md +10 -10
  330. package/src/features/store/objects/layout/renderers.tsx +39 -18
  331. package/src/features/store/objects/search/DocumentSearchContext.ts +6 -1
  332. package/src/features/store/objects/search/DocumentSearchProvider.tsx +1 -1
  333. package/src/features/store/objects/selection/ObjectsActionContext.tsx +3 -2
  334. package/src/features/store/objects/selection/SelectionActions.tsx +2 -0
  335. package/src/features/store/objects/selection/actions/AddToCollectionAction.tsx +23 -10
  336. package/src/features/store/objects/selection/actions/DeleteObjectsAction.tsx +22 -2
  337. package/src/features/store/objects/upload/DocumentUploadModal.tsx +23 -15
  338. package/src/features/store/objects/upload/useSmartFileUploadProcessing.ts +10 -7
  339. package/src/features/store/types/CreateOrUpdateTypeModal.tsx +1 -1
  340. package/src/features/store/types/ObjectSchemaEditor.tsx +1 -1
  341. package/src/features/user/UserInfo.tsx +66 -3
  342. package/src/router/HistoryNavigator.ts +33 -2
  343. package/src/router/Nav.tsx +4 -3
  344. package/src/shell/login/UserInfo.tsx +1 -1
  345. package/src/widgets/form/Form.tsx +19 -43
  346. package/src/widgets/form/FormContext.ts +5 -2
  347. package/src/widgets/form/fields.tsx +8 -6
  348. package/src/widgets/form/inputs.tsx +1 -0
  349. package/src/widgets/schema-editor/index.ts +0 -1
  350. package/lib/esm/core/components/Textarea.js +0 -15
  351. package/lib/esm/core/components/Textarea.js.map +0 -1
  352. package/lib/esm/features/facets/FacetsNav.js +0 -8
  353. package/lib/esm/features/facets/FacetsNav.js.map +0 -1
  354. package/lib/esm/features/facets/StringFacet.js.map +0 -1
  355. package/lib/esm/features/facets/StringListFacet.js.map +0 -1
  356. package/lib/esm/features/facets/TypeFacet.js.map +0 -1
  357. package/lib/esm/features/facets/VEnvironmentFacet.js.map +0 -1
  358. package/lib/esm/features/facets/VFacetsNav.js +0 -48
  359. package/lib/esm/features/facets/VFacetsNav.js.map +0 -1
  360. package/lib/esm/features/facets/VInteractionFacet.js.map +0 -1
  361. package/lib/esm/features/facets/VStringFacet.js.map +0 -1
  362. package/lib/esm/features/facets/VTypeFacet.js.map +0 -1
  363. package/lib/esm/features/facets/VUserFacet.js.map +0 -1
  364. package/lib/esm/features/facets/utils.js.map +0 -1
  365. package/lib/esm/widgets/schema-editor/JSONSchemaEditorModal.js +0 -49
  366. package/lib/esm/widgets/schema-editor/JSONSchemaEditorModal.js.map +0 -1
  367. package/lib/types/core/components/Textarea.d.ts +0 -8
  368. package/lib/types/core/components/Textarea.d.ts.map +0 -1
  369. package/lib/types/features/facets/FacetsNav.d.ts +0 -7
  370. package/lib/types/features/facets/FacetsNav.d.ts.map +0 -1
  371. package/lib/types/features/facets/StringFacet.d.ts.map +0 -1
  372. package/lib/types/features/facets/StringListFacet.d.ts.map +0 -1
  373. package/lib/types/features/facets/TypeFacet.d.ts.map +0 -1
  374. package/lib/types/features/facets/VEnvironmentFacet.d.ts.map +0 -1
  375. package/lib/types/features/facets/VFacetsNav.d.ts +0 -16
  376. package/lib/types/features/facets/VFacetsNav.d.ts.map +0 -1
  377. package/lib/types/features/facets/VInteractionFacet.d.ts.map +0 -1
  378. package/lib/types/features/facets/VStringFacet.d.ts.map +0 -1
  379. package/lib/types/features/facets/VTypeFacet.d.ts.map +0 -1
  380. package/lib/types/features/facets/VUserFacet.d.ts.map +0 -1
  381. package/lib/types/features/facets/utils.d.ts.map +0 -1
  382. package/lib/types/widgets/schema-editor/JSONSchemaEditorModal.d.ts +0 -10
  383. package/lib/types/widgets/schema-editor/JSONSchemaEditorModal.d.ts.map +0 -1
  384. package/src/core/components/Textarea.tsx +0 -25
  385. package/src/features/facets/FacetsNav.tsx +0 -19
  386. package/src/features/facets/VFacetsNav.tsx +0 -81
  387. package/src/widgets/schema-editor/JSONSchemaEditorModal.tsx +0 -67
  388. /package/lib/esm/features/facets/{StringFacet.js → utils/StringFacet.js} +0 -0
  389. /package/lib/esm/features/facets/{StringListFacet.js → utils/StringListFacet.js} +0 -0
  390. /package/lib/esm/features/facets/{TypeFacet.js → utils/TypeFacet.js} +0 -0
  391. /package/lib/esm/features/facets/{VEnvironmentFacet.js → utils/VEnvironmentFacet.js} +0 -0
  392. /package/lib/esm/features/facets/{VInteractionFacet.js → utils/VInteractionFacet.js} +0 -0
  393. /package/lib/esm/features/facets/{VStringFacet.js → utils/VStringFacet.js} +0 -0
  394. /package/lib/esm/features/facets/{utils.js → utils/utils.js} +0 -0
  395. /package/lib/types/features/facets/{StringFacet.d.ts → utils/StringFacet.d.ts} +0 -0
  396. /package/lib/types/features/facets/{StringListFacet.d.ts → utils/StringListFacet.d.ts} +0 -0
  397. /package/lib/types/features/facets/{TypeFacet.d.ts → utils/TypeFacet.d.ts} +0 -0
  398. /package/lib/types/features/facets/{VEnvironmentFacet.d.ts → utils/VEnvironmentFacet.d.ts} +0 -0
  399. /package/lib/types/features/facets/{VInteractionFacet.d.ts → utils/VInteractionFacet.d.ts} +0 -0
  400. /package/lib/types/features/facets/{VStringFacet.d.ts → utils/VStringFacet.d.ts} +0 -0
  401. /package/lib/types/features/facets/{VUserFacet.d.ts → utils/VUserFacet.d.ts} +0 -0
  402. /package/lib/types/features/facets/{utils.d.ts → utils/utils.d.ts} +0 -0
  403. /package/src/features/facets/{StringFacet.tsx → utils/StringFacet.tsx} +0 -0
  404. /package/src/features/facets/{StringListFacet.tsx → utils/StringListFacet.tsx} +0 -0
  405. /package/src/features/facets/{TypeFacet.tsx → utils/TypeFacet.tsx} +0 -0
  406. /package/src/features/facets/{VEnvironmentFacet.tsx → utils/VEnvironmentFacet.tsx} +0 -0
  407. /package/src/features/facets/{VInteractionFacet.tsx → utils/VInteractionFacet.tsx} +0 -0
  408. /package/src/features/facets/{VStringFacet.tsx → utils/VStringFacet.tsx} +0 -0
  409. /package/src/features/facets/{utils.tsx → utils/utils.tsx} +0 -0
package/package.json CHANGED
@@ -1,171 +1,172 @@
1
1
  {
2
- "name": "@vertesia/ui",
3
- "version": "0.78.0",
4
- "description": "Vertesia UI components and and hooks",
5
- "type": "module",
6
- "main": "./lib/index.js",
7
- "files": [
8
- "lib",
9
- "src",
10
- "tsconfig.dist.json"
11
- ],
12
- "license": "Apache-2.0",
13
- "homepage": "https://docs.vertesiahq.com",
14
- "keywords": [
15
- "vertesia",
16
- "UI",
17
- "react",
18
- "components",
19
- "hooks"
20
- ],
21
- "dependencies": {
22
- "@codemirror/lang-json": "^6.0.1",
23
- "@codemirror/state": "^6.5.2",
24
- "@codemirror/view": "^6.36.8",
25
- "@floating-ui/dom": "^1.7.1",
26
- "@floating-ui/react": "^0.27.11",
27
- "@headlessui/react": "^2.2.2",
28
- "@monaco-editor/react": "^4.7.0",
29
- "@radix-ui/react-checkbox": "^1.3.1",
30
- "@radix-ui/react-dialog": "^1.1.13",
31
- "@radix-ui/react-label": "^2.1.6",
32
- "@radix-ui/react-popover": "^1.1.13",
33
- "@radix-ui/react-separator": "^1.1.6",
34
- "@radix-ui/react-slot": "^1.2.2",
35
- "@radix-ui/react-tabs": "^1.1.11",
36
- "@radix-ui/react-tooltip": "^1.2.6",
37
- "ajv": "^8.16.0",
38
- "class-variance-authority": "^0.7.1",
39
- "clsx": "^2.1.1",
40
- "cmdk": "^1.1.1",
41
- "codemirror": "^6.0.1",
42
- "dayjs": "^1.11.13",
43
- "debounce": "^2.2.0",
44
- "fast-xml-parser": "^5.2.3",
45
- "firebase": "^10.12.2",
46
- "framer-motion": "^12.23.12",
47
- "json-schema": "^0.4.0",
48
- "jwt-decode": "^4.0.0",
49
- "lodash-es": "^4.17.21",
50
- "lucide-react": "^0.511.0",
51
- "monaco-editor": "^0.52.2",
52
- "motion": "^12.12.1",
53
- "react": "^19.1.0",
54
- "react-calendar": "^6.0.0",
55
- "react-date-picker": "^11.0.0",
56
- "react-dom": "^19.1.0",
57
- "react-error-boundary": "^6.0.0",
58
- "react-markdown": "^10.1.0",
59
- "remark-gfm": "^4.0.1",
60
- "tailwind-merge": "^3.3.0",
61
- "ts-md5": "^1.3.1",
62
- "unist-util-visit": "^5.0.0",
63
- "@vertesia/client": "0.78.0",
64
- "@vertesia/common": "0.78.0",
65
- "@vertesia/json": "0.78.0"
66
- },
67
- "devDependencies": {
68
- "@eslint/js": "^9.27.0",
69
- "@rollup/plugin-commonjs": "^28.0.3",
70
- "@rollup/plugin-json": "^6.1.0",
71
- "@rollup/plugin-node-resolve": "^16.0.1",
72
- "@types/json-schema": "^7.0.15",
73
- "@types/lodash-es": "^4.17.12",
74
- "@types/node": "^22.15.21",
75
- "@types/react": "^19.1.0",
76
- "@types/react-dom": "^19.1.1",
77
- "eslint": "^9.27.0",
78
- "eslint-import-resolver-typescript": "^4.4.4",
79
- "eslint-plugin-import": "^2.32.0",
80
- "eslint-plugin-react": "^7.37.5",
81
- "eslint-plugin-react-hooks": "^5.2.0",
82
- "rimraf": "^6.0.1",
83
- "rollup": "^4.40.2",
84
- "rollup-plugin-terser": "^7.0.2",
85
- "typescript": "~5.8.3",
86
- "typescript-eslint": "^8.38.0",
87
- "vitest": "^3.0.9"
88
- },
89
- "exports": {
90
- "./router": {
91
- "types": "./lib/types/router/index.d.ts",
92
- "default": "./lib/esm/router/index.js"
2
+ "name": "@vertesia/ui",
3
+ "version": "0.79.1",
4
+ "description": "Vertesia UI components and and hooks",
5
+ "type": "module",
6
+ "main": "./lib/index.js",
7
+ "files": [
8
+ "lib",
9
+ "src",
10
+ "tsconfig.dist.json"
11
+ ],
12
+ "license": "Apache-2.0",
13
+ "homepage": "https://docs.vertesiahq.com",
14
+ "keywords": [
15
+ "vertesia",
16
+ "UI",
17
+ "react",
18
+ "components",
19
+ "hooks"
20
+ ],
21
+ "scripts": {
22
+ "build": "pnpm lint && pnpm exec rimraf ./lib && tsc -b && pnpm exec rollup -c",
23
+ "lint": "eslint \"src/**/*.{ts,tsx}\"",
24
+ "lint:fix": "eslint \"src/**/*.{ts,tsx}\" --fix"
93
25
  },
94
- "./env": {
95
- "types": "./lib/types/env/index.d.ts",
96
- "default": "./lib/esm/env/index.js"
26
+ "dependencies": {
27
+ "@codemirror/lang-json": "^6.0.1",
28
+ "@codemirror/state": "^6.5.2",
29
+ "@codemirror/view": "^6.36.8",
30
+ "@floating-ui/dom": "^1.7.1",
31
+ "@floating-ui/react": "^0.27.11",
32
+ "@headlessui/react": "^2.2.2",
33
+ "@monaco-editor/react": "^4.7.0",
34
+ "@radix-ui/react-checkbox": "^1.3.1",
35
+ "@radix-ui/react-dialog": "^1.1.13",
36
+ "@radix-ui/react-label": "^2.1.6",
37
+ "@radix-ui/react-popover": "^1.1.13",
38
+ "@radix-ui/react-separator": "^1.1.6",
39
+ "@radix-ui/react-slot": "^1.2.2",
40
+ "@radix-ui/react-tabs": "^1.1.11",
41
+ "@radix-ui/react-tooltip": "^1.2.6",
42
+ "@vertesia/client": "workspace:*",
43
+ "@vertesia/common": "workspace:*",
44
+ "@vertesia/json": "workspace:*",
45
+ "ajv": "^8.16.0",
46
+ "class-variance-authority": "^0.7.1",
47
+ "clsx": "^2.1.1",
48
+ "cmdk": "^1.1.1",
49
+ "codemirror": "^6.0.1",
50
+ "dayjs": "^1.11.13",
51
+ "debounce": "^2.2.0",
52
+ "fast-xml-parser": "^5.2.3",
53
+ "firebase": "^10.12.2",
54
+ "framer-motion": "^12.23.12",
55
+ "json-schema": "^0.4.0",
56
+ "jwt-decode": "^4.0.0",
57
+ "lodash-es": "^4.17.21",
58
+ "lucide-react": "^0.511.0",
59
+ "monaco-editor": "^0.52.2",
60
+ "motion": "^12.12.1",
61
+ "react": "^19.1.0",
62
+ "react-calendar": "^6.0.0",
63
+ "react-date-picker": "^11.0.0",
64
+ "react-dom": "^19.1.0",
65
+ "react-error-boundary": "^6.0.0",
66
+ "react-markdown": "^10.1.0",
67
+ "react-resizable-panels": "^3.0.6",
68
+ "remark-gfm": "^4.0.1",
69
+ "tailwind-merge": "^3.3.0",
70
+ "ts-md5": "^1.3.1",
71
+ "unist-util-visit": "^5.0.0"
97
72
  },
98
- "./session": {
99
- "types": "./lib/types/session/index.d.ts",
100
- "default": "./lib/esm/session/index.js"
73
+ "devDependencies": {
74
+ "@eslint/js": "^9.27.0",
75
+ "@rollup/plugin-commonjs": "^28.0.3",
76
+ "@rollup/plugin-json": "^6.1.0",
77
+ "@rollup/plugin-node-resolve": "^16.0.1",
78
+ "@types/json-schema": "^7.0.15",
79
+ "@types/lodash-es": "^4.17.12",
80
+ "@types/node": "^22.15.21",
81
+ "@types/react": "^19.1.0",
82
+ "@types/react-dom": "^19.1.1",
83
+ "eslint": "^9.27.0",
84
+ "eslint-import-resolver-typescript": "^4.4.4",
85
+ "eslint-plugin-import": "^2.32.0",
86
+ "eslint-plugin-react": "^7.37.5",
87
+ "eslint-plugin-react-hooks": "^5.2.0",
88
+ "rimraf": "^6.0.1",
89
+ "rollup": "^4.40.2",
90
+ "rollup-plugin-terser": "^7.0.2",
91
+ "typescript": "~5.8.3",
92
+ "typescript-eslint": "^8.38.0",
93
+ "vitest": "^3.0.9"
101
94
  },
102
- "./core": {
103
- "types": "./lib/types/core/index.d.ts",
104
- "default": "./lib/esm/core/index.js"
95
+ "exports": {
96
+ "./router": {
97
+ "types": "./lib/types/router/index.d.ts",
98
+ "default": "./lib/esm/router/index.js"
99
+ },
100
+ "./env": {
101
+ "types": "./lib/types/env/index.d.ts",
102
+ "default": "./lib/esm/env/index.js"
103
+ },
104
+ "./session": {
105
+ "types": "./lib/types/session/index.d.ts",
106
+ "default": "./lib/esm/session/index.js"
107
+ },
108
+ "./core": {
109
+ "types": "./lib/types/core/index.d.ts",
110
+ "default": "./lib/esm/core/index.js"
111
+ },
112
+ "./widgets": {
113
+ "types": "./lib/types/widgets/index.d.ts",
114
+ "default": "./lib/esm/widgets/index.js"
115
+ },
116
+ "./code": {
117
+ "types": "./lib/types/code/index.d.ts",
118
+ "default": "./lib/esm/code/index.js"
119
+ },
120
+ "./form": {
121
+ "types": "./lib/types/form/index.d.ts",
122
+ "default": "./lib/esm/form/index.js"
123
+ },
124
+ "./layout": {
125
+ "types": "./lib/types/layout/index.d.ts",
126
+ "default": "./lib/esm/layout/index.js"
127
+ },
128
+ "./features": {
129
+ "types": "./lib/types/features/index.d.ts",
130
+ "default": "./lib/esm/features/index.js"
131
+ },
132
+ "./shell": {
133
+ "types": "./lib/types/shell/index.d.ts",
134
+ "default": "./lib/esm/shell/index.js"
135
+ }
105
136
  },
106
- "./widgets": {
107
- "types": "./lib/types/widgets/index.d.ts",
108
- "default": "./lib/esm/widgets/index.js"
109
- },
110
- "./code": {
111
- "types": "./lib/types/code/index.d.ts",
112
- "default": "./lib/esm/code/index.js"
113
- },
114
- "./form": {
115
- "types": "./lib/types/form/index.d.ts",
116
- "default": "./lib/esm/form/index.js"
117
- },
118
- "./layout": {
119
- "types": "./lib/types/layout/index.d.ts",
120
- "default": "./lib/esm/layout/index.js"
121
- },
122
- "./features": {
123
- "types": "./lib/types/features/index.d.ts",
124
- "default": "./lib/esm/features/index.js"
125
- },
126
- "./shell": {
127
- "types": "./lib/types/shell/index.d.ts",
128
- "default": "./lib/esm/shell/index.js"
129
- }
130
- },
131
- "types": "./lib/index.d.ts",
132
- "typesVersions": {
133
- "*": {
134
- "router": [
135
- "./lib/types/router/index.d.ts"
136
- ],
137
- "env": [
138
- "./lib/types/env/index.d.ts"
139
- ],
140
- "session": [
141
- "./lib/types/session/index.d.ts"
142
- ],
143
- "core": [
144
- "./lib/types/core/index.d.ts"
145
- ],
146
- "widgets": [
147
- "./lib/types/widgets/index.d.ts"
148
- ],
149
- "code": [
150
- "./lib/types/code/index.d.ts"
151
- ],
152
- "features": [
153
- "./lib/types/features/index.d.ts"
154
- ],
155
- "layout": [
156
- "./lib/types/layout/index.d.ts"
157
- ],
158
- "form": [
159
- "./lib/types/form/index.d.ts"
160
- ],
161
- "shell": [
162
- "./lib/types/shell/index.d.ts"
163
- ]
137
+ "types": "./lib/index.d.ts",
138
+ "typesVersions": {
139
+ "*": {
140
+ "router": [
141
+ "./lib/types/router/index.d.ts"
142
+ ],
143
+ "env": [
144
+ "./lib/types/env/index.d.ts"
145
+ ],
146
+ "session": [
147
+ "./lib/types/session/index.d.ts"
148
+ ],
149
+ "core": [
150
+ "./lib/types/core/index.d.ts"
151
+ ],
152
+ "widgets": [
153
+ "./lib/types/widgets/index.d.ts"
154
+ ],
155
+ "code": [
156
+ "./lib/types/code/index.d.ts"
157
+ ],
158
+ "features": [
159
+ "./lib/types/features/index.d.ts"
160
+ ],
161
+ "layout": [
162
+ "./lib/types/layout/index.d.ts"
163
+ ],
164
+ "form": [
165
+ "./lib/types/form/index.d.ts"
166
+ ],
167
+ "shell": [
168
+ "./lib/types/shell/index.d.ts"
169
+ ]
170
+ }
164
171
  }
165
- },
166
- "scripts": {
167
- "build": "pnpm lint && pnpm exec rimraf ./lib && tsc -b && pnpm exec rollup -c",
168
- "lint": "eslint \"src/**/*.{ts,tsx}\"",
169
- "lint:fix": "eslint \"src/**/*.{ts,tsx}\" --fix"
170
- }
171
- }
172
+ }
@@ -0,0 +1,34 @@
1
+ import { VTooltip } from "./shadcn/tooltip"
2
+ import { Info } from "lucide-react"
3
+
4
+ interface PanelProps {
5
+ title: string | React.ReactNode
6
+ description?: React.ReactNode
7
+ action?: React.ReactNode
8
+ children: React.ReactNode
9
+ footer?: string | React.ReactNode
10
+ className?: string
11
+ }
12
+
13
+ export function Panel({ children, action, title, description, footer, className }: PanelProps) {
14
+
15
+ return (
16
+ <div className={`p-4 flex flex-col gap-2 rounded-sm border bg-card ${className}`}>
17
+ <div className="flex items-center justify-between">
18
+ <div className="flex items-center gap-2">
19
+ <div className="font-semibold text-lg">
20
+ {title}
21
+ </div>
22
+ {description && <VTooltip description={description}><Info className="size-4 text-muted" /></VTooltip>}
23
+ </div>
24
+ {action}
25
+ </div>
26
+
27
+ {children}
28
+ {footer &&
29
+ <div className="border-t border-muted flex flex-col-2 text-sm pt-4">
30
+ {footer}
31
+ </div>}
32
+ </div>
33
+ )
34
+ }
@@ -1,6 +1,7 @@
1
1
  import { Check } from "lucide-react";
2
2
  import clsx from "clsx";
3
3
  import { ReactNode, useMemo, useState } from "react";
4
+ import { Input } from "./shadcn";
4
5
 
5
6
  const Default_Option_Style = "flex-1 px-2 py-2 hover:bg-accent nowrap";
6
7
 
@@ -28,9 +29,12 @@ export interface SelectListProps<T> {
28
29
  by?: (keyof T & string) | ((o1: T, o2: T) => boolean);
29
30
  optionLayout?: (opt: T, selected: boolean) => OptionLayout;
30
31
  noCheck?: boolean;
32
+ filterBy?: (filterValue: string) => (opt: T) => boolean;
31
33
  }
32
- export function SelectList<T>({ value, options, onChange, className, optionLayout, by, noCheck }: SelectListProps<T>) {
34
+ export function SelectList<T>({ value, options, onChange, className, optionLayout, by, noCheck, filterBy }: SelectListProps<T>) {
33
35
  const [selected, setSelected] = useState(value);
36
+ const [filterValue, setFilterValue] = useState("");
37
+
34
38
  const onSelect = (option: T) => {
35
39
  setSelected(option);
36
40
  onChange(option);
@@ -46,7 +50,13 @@ export function SelectList<T>({ value, options, onChange, className, optionLayou
46
50
  }, [by]);
47
51
  return (
48
52
  <div className={clsx("", className)}>
53
+ {filterBy && (
54
+ <Input type="text" placeholder="Filter..." value={filterValue} onChange={(value) => setFilterValue(value)} />
55
+ )}
49
56
  {options.map((option, i) => {
57
+ if (filterBy && !filterBy(filterValue)(option)) {
58
+ return null;
59
+ }
50
60
  const isSelected = selected ? optionEquals(selected, option) : false;
51
61
  let layout: OptionLayout;
52
62
  if (optionLayout) {
@@ -1,6 +1,6 @@
1
1
  import { useState } from 'react';
2
2
  import { motion, AnimatePresence } from 'framer-motion';
3
- import { X } from 'lucide-react';
3
+ import { Minus, X } from 'lucide-react';
4
4
  import { Button } from './shadcn/button';
5
5
 
6
6
  interface SidePanelProps {
@@ -53,7 +53,7 @@ export function SidePanel({ isOpen, title, onClose, children, panelWidth = 768,
53
53
  onClick={onClose}
54
54
  />
55
55
  )}
56
-
56
+
57
57
  <div className="fixed inset-y-0 right-0 overflow-hidden">
58
58
  <div className="absolute inset-0 overflow-hidden">
59
59
  <div className="pointer-events-none fixed inset-y-0 right-0 flex max-w-full pl-10 sm:pl-16">
@@ -68,20 +68,25 @@ export function SidePanel({ isOpen, title, onClose, children, panelWidth = 768,
68
68
  <div className="relative flex h-full">
69
69
  {/* Drag Handle */}
70
70
  <div
71
- className="absolute left-0 top-0 bottom-0 w-1 cursor-ew-resize hover:bg-indigo-500 transition-colors"
71
+ className="absolute -left-1 top-0 bottom-0 w-3 cursor-ew-resize hover:bg-indigo-500 transition-colors flex items-center justify-center"
72
72
  onMouseDown={handleDragStart}
73
- />
74
- <div className="flex-1 flex flex-col overflow-y-scroll gap-4 bg-background py-6 shadow-xl">
75
- <div className="px-2 sm:px-4">
76
- <div className="flex items-start justify-between">
77
- <h2 className="w-full text-base font-semibold leading-6">
78
- <div className="text-2xl">{title ?? ""}</div>
79
- </h2>
80
- <div className="ml-3 flex h-7 items-center">
81
- <CloseButton onClose={onClose} />
73
+ >
74
+ <Minus className="rotate-90 font-semibold" strokeWidth={4} />
75
+ </div>
76
+ <div className="flex-1 flex flex-col overflow-y-scroll gap-4 bg-background py-2 shadow-xl">
77
+ {title && (
78
+ <div className="px-2 sm:px-4">
79
+ <div className="flex items-start justify-between">
80
+ <h2 className="w-full text-base font-semibold leading-6">
81
+ <div className="text-2xl">{title ?? ""}</div>
82
+ </h2>
83
+ <div className="ml-3 flex h-7 items-center">
84
+ <CloseButton onClose={onClose} />
85
+ </div>
82
86
  </div>
83
87
  </div>
84
- </div>
88
+ )}
89
+
85
90
  <div className="px-2 sm:px-4">
86
91
  {children}
87
92
  </div>
@@ -26,12 +26,12 @@ export * from "./SelectList.js";
26
26
  export * from "./SelectStack.js";
27
27
  export * from "./shadcn/index.js";
28
28
  export * from "./SidePanel.js";
29
+ export * from "./Panel.js";
29
30
  export * from "./Spinner.js";
30
31
  export * from "./styles.js";
31
32
  export * from "./Switch.js";
32
33
  export * from "./table/index.js";
33
34
  export * from "./tabs/index.js";
34
- export * from "./Textarea.js";
35
35
  export * from "./toast/index.js";
36
36
 
37
37
  export type HeroIcon = React.ForwardRefExoticComponent<Omit<React.SVGProps<SVGSVGElement>, "ref"> & {
@@ -6,28 +6,37 @@ import { cn } from "../libs/utils"
6
6
  interface BreadcrumbProps {
7
7
  label: string
8
8
  href?: string
9
+ onClick?: () => void
9
10
  }
10
11
  interface BreadcrumbItemProps {
11
- children: BreadcrumbProps[]
12
+ path: BreadcrumbProps[]
12
13
  className?: string
13
14
  maxItems?: number
14
15
  separator?: React.ReactNode
15
16
  }
16
- export function Breadcrumbs({ children, maxItems = 3, className, separator }: BreadcrumbItemProps) {
17
- if (children.length <= maxItems) {
17
+ export function Breadcrumbs({ path, maxItems = 3, className, separator }: BreadcrumbItemProps) {
18
+ const items = path || [];
19
+
20
+ const renderBreadcrumbItem = (item: BreadcrumbProps) => {
21
+ if (item.onClick) {
22
+ return <BreadcrumbButton onClick={item.onClick} href={item.href}>{item.label}</BreadcrumbButton>;
23
+ } else if (item.href) {
24
+ return <BreadcrumbButton href={item.href}>{item.label}</BreadcrumbButton>;
25
+ } else {
26
+ return <BreadcrumbPage>{item.label}</BreadcrumbPage>;
27
+ }
28
+ };
29
+
30
+ if (items.length <= maxItems) {
18
31
  return (
19
32
  <Breadcrumb className={cn("w-full", className)}>
20
33
  <BreadcrumbList>
21
- {children.map((item, index) => (
34
+ {items.map((item, index) => (
22
35
  <React.Fragment key={index}>
23
36
  <BreadcrumbItem>
24
- {item.href ? (
25
- <BreadcrumbLink href={item.href}>{item.label}</BreadcrumbLink>
26
- ) : (
27
- <BreadcrumbPage>{item.label}</BreadcrumbPage>
28
- )}
37
+ {renderBreadcrumbItem(item)}
29
38
  </BreadcrumbItem>
30
- {index < children.length - 1 &&
39
+ {index < items.length - 1 &&
31
40
  <BreadcrumbSeparator>{separator ?? <ChevronRight />}</BreadcrumbSeparator>
32
41
  }
33
42
  </React.Fragment>
@@ -37,36 +46,22 @@ export function Breadcrumbs({ children, maxItems = 3, className, separator }: Br
37
46
  );
38
47
  }
39
48
 
40
- const firstItem = children[0];
41
- const lastItems = children.slice(-(maxItems - 2));
49
+ const lastThreeItems = items.slice(-(maxItems - 1));
42
50
 
43
51
  return (
44
52
  <Breadcrumb className={cn("w-full", className)}>
45
53
  <BreadcrumbList>
46
- <BreadcrumbItem>
47
- {firstItem.href ? (
48
- <BreadcrumbLink href={firstItem.href}>{firstItem.label}</BreadcrumbLink>
49
- ) : (
50
- <BreadcrumbPage>{firstItem.label}</BreadcrumbPage>
51
- )}
52
- </BreadcrumbItem>
53
- <BreadcrumbSeparator>{separator ?? <ChevronRight />}</BreadcrumbSeparator>
54
-
55
54
  <BreadcrumbItem>
56
55
  <BreadcrumbEllipsis />
57
56
  </BreadcrumbItem>
58
57
  <BreadcrumbSeparator>{separator ?? <ChevronRight />}</BreadcrumbSeparator>
59
58
 
60
- {lastItems.map((item, index) => (
59
+ {lastThreeItems.map((item, index) => (
61
60
  <React.Fragment key={index}>
62
61
  <BreadcrumbItem>
63
- {item.href ? (
64
- <BreadcrumbLink href={item.href}>{item.label}</BreadcrumbLink>
65
- ) : (
66
- <BreadcrumbPage>{item.label}</BreadcrumbPage>
67
- )}
62
+ {renderBreadcrumbItem(item)}
68
63
  </BreadcrumbItem>
69
- {index < lastItems.length - 1 && <BreadcrumbSeparator>{separator ?? <ChevronRight />}</BreadcrumbSeparator>
64
+ {index < lastThreeItems.length - 1 && <BreadcrumbSeparator>{separator ?? <ChevronRight />}</BreadcrumbSeparator>
70
65
  }
71
66
  </React.Fragment>
72
67
  ))}
@@ -104,7 +99,7 @@ const BreadcrumbItem = React.forwardRef<
104
99
  >(({ className, ...props }, ref) => (
105
100
  <li
106
101
  ref={ref}
107
- className={cn("inline-flex items-center gap-1.5", className)}
102
+ className={cn("inline-flex items-center gap-1.5 text-muted", className)}
108
103
  {...props}
109
104
  />
110
105
  ))
@@ -119,13 +114,37 @@ const BreadcrumbLink = React.forwardRef<
119
114
  return (
120
115
  <a
121
116
  ref={ref}
122
- className={cn("transition-colors hover:text-foreground", className)}
117
+ className={cn("transition-colors hover:text-muted", className)}
123
118
  {...props}
124
119
  />
125
120
  )
126
121
  })
127
122
  BreadcrumbLink.displayName = "BreadcrumbLink"
128
123
 
124
+ const BreadcrumbButton = React.forwardRef<
125
+ HTMLButtonElement,
126
+ React.ComponentPropsWithoutRef<"button"> & {
127
+ href?: string
128
+ }
129
+ >(({ className, href, onClick, ...props }, ref) => {
130
+ const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {
131
+ e.preventDefault();
132
+ if (onClick) {
133
+ onClick(e);
134
+ }
135
+ };
136
+
137
+ return (
138
+ <button
139
+ ref={ref}
140
+ className={cn("transition-colors hover:text-foreground cursor-pointer", className)}
141
+ onClick={handleClick}
142
+ {...props}
143
+ />
144
+ );
145
+ })
146
+ BreadcrumbButton.displayName = "BreadcrumbButton"
147
+
129
148
  const BreadcrumbPage = React.forwardRef<
130
149
  HTMLSpanElement,
131
150
  React.ComponentPropsWithoutRef<"span">
@@ -20,7 +20,7 @@ const buttonVariants = cva(
20
20
  secondary:
21
21
  "bg-primary/5 dark:bg-primary/10 text-primary shadow-xs hover:bg-primary/10 dark:hover:bg-primary/20 ring-inset",
22
22
  ghost: "hover:bg-muted/50 dark:hover:bg-muted/20 ring-inset",
23
- link: "text-white underline-offset-4 hover:underline ring-inset",
23
+ link: "text-foreground underline-offset-4 hover:underline ring-inset",
24
24
  primary:
25
25
  "bg-primary text-white shadow-xs hover:bg-primary/90 ring-inset",
26
26
  unstyled:
@@ -108,7 +108,8 @@ const CopyButton = React.forwardRef<HTMLButtonElement, CopyButtonProps>(
108
108
 
109
109
  const [isCopied, setIsCopied] = useState(false);
110
110
 
111
- const handleCopy = () => {
111
+ const handleCopy = (e: React.MouseEvent) => {
112
+ e.stopPropagation();
112
113
  navigator.clipboard.writeText(content).then(() => {
113
114
  setIsCopied(true)
114
115
  setTimeout(() => setIsCopied(false), 2000)