@tablestore/tablestore-agent-cli 0.1.9 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/dist/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
  2. package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +3 -3
  3. package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js +1 -1
  5. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  6. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  7. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js +1 -1
  8. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js.nft.json +1 -1
  9. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page_client-reference-manifest.js +1 -1
  10. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js +1 -1
  11. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js.nft.json +1 -1
  12. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page_client-reference-manifest.js +1 -1
  13. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js +1 -1
  14. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js.nft.json +1 -1
  15. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page_client-reference-manifest.js +1 -1
  16. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js +1 -1
  17. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js.nft.json +1 -1
  18. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page_client-reference-manifest.js +1 -1
  19. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js +1 -1
  20. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js.nft.json +1 -1
  21. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page_client-reference-manifest.js +1 -1
  22. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js +1 -1
  23. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js.nft.json +1 -1
  24. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page_client-reference-manifest.js +1 -1
  25. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js +1 -1
  26. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js.nft.json +1 -1
  27. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page_client-reference-manifest.js +1 -1
  28. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js +1 -1
  29. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js.nft.json +1 -1
  30. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page_client-reference-manifest.js +1 -1
  31. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js +2 -2
  32. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js.nft.json +1 -1
  33. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page_client-reference-manifest.js +1 -1
  34. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js +1 -1
  35. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
  36. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  37. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js +1 -1
  38. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js.nft.json +1 -1
  39. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page_client-reference-manifest.js +1 -1
  40. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js +1 -1
  41. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js.nft.json +1 -1
  42. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page_client-reference-manifest.js +1 -1
  43. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page/react-loadable-manifest.json +1 -1
  44. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js +1 -1
  45. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js.nft.json +1 -1
  46. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page_client-reference-manifest.js +1 -1
  47. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js +1 -1
  48. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js.nft.json +1 -1
  49. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page_client-reference-manifest.js +1 -1
  50. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js +1 -1
  51. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js.nft.json +1 -1
  52. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page_client-reference-manifest.js +1 -1
  53. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js +1 -1
  54. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js.nft.json +1 -1
  55. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page_client-reference-manifest.js +1 -1
  56. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js +1 -1
  57. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js.nft.json +1 -1
  58. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page_client-reference-manifest.js +1 -1
  59. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js +1 -1
  60. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  61. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  62. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js +1 -1
  63. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  64. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  65. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.html +1 -1
  66. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.rsc +1 -1
  67. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  68. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  69. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  70. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  71. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  72. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  73. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.html +1 -1
  74. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.rsc +3 -3
  75. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  76. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  77. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  78. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  79. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  80. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  81. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js.nft.json +1 -1
  82. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js.nft.json +1 -1
  83. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js.nft.json +1 -1
  84. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js.nft.json +1 -1
  85. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js.nft.json +1 -1
  86. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js.nft.json +1 -1
  87. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js.nft.json +1 -1
  88. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js.nft.json +1 -1
  89. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js.nft.json +1 -1
  90. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js.nft.json +1 -1
  91. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js.nft.json +1 -1
  92. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js.nft.json +1 -1
  93. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js.nft.json +1 -1
  94. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js.nft.json +1 -1
  95. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js.nft.json +1 -1
  96. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js.nft.json +1 -1
  97. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js.nft.json +1 -1
  98. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js.nft.json +1 -1
  99. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js.nft.json +1 -1
  100. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.nft.json +1 -1
  101. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js.nft.json +1 -1
  102. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js.nft.json +1 -1
  103. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js.nft.json +1 -1
  104. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js.nft.json +1 -1
  105. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js.nft.json +1 -1
  106. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js.nft.json +1 -1
  107. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js.nft.json +1 -1
  108. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js.nft.json +1 -1
  109. package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
  110. package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +3 -3
  111. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  112. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +3 -3
  113. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  114. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +3 -3
  115. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  116. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page.js.nft.json +1 -1
  117. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  118. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.html +1 -1
  119. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.rsc +5 -5
  120. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +5 -5
  121. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
  122. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +3 -3
  123. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
  124. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +2 -2
  125. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +2 -2
  126. package/dist/dashboard-runtime/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  127. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0b1r_app_(dashboard)_knowledge-base_[name]_documents_documents-client_tsx_0g2uxmt._.js +2 -2
  128. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0aqzu8w._.js +1 -1
  129. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0id.4_g._.js +3 -0
  130. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0jb9ccl._.js +1 -1
  131. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0jhpb-b._.js +3 -0
  132. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0p7j-9i._.js +3 -0
  133. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0.1szyw._.js +3 -0
  134. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_01-2v37._.js +3 -0
  135. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0251rsp._.js +7 -0
  136. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_038vjn1._.js +3 -0
  137. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_04f2u4t._.js +1 -1
  138. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_06tznmj._.js +3 -0
  139. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09y~hs8._.js +3 -0
  140. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0_ow0x1._.js +3 -0
  141. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0ddbh97._.js +1 -1
  142. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0f4u0.1._.js +3 -0
  143. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0fj8l5g._.js +3 -0
  144. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0hnw-ok._.js +3 -0
  145. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0j-q~ro._.js +3 -0
  146. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0jghj2_._.js +3 -0
  147. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0l~-9i0._.js +3 -0
  148. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0mtqe24._.js +3 -0
  149. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0n4gd_6._.js +3 -0
  150. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0o665bf._.js +1 -1
  151. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0q748rf._.js +1 -1
  152. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0t373jc._.js +3 -0
  153. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0u4elhp._.js +3 -0
  154. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0vtm7dh._.js +3 -0
  155. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0xdioxg._.js +3 -0
  156. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_12guzbo._.js +3 -0
  157. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_12r9c8h._.js +3 -0
  158. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_00ofp7q._.js +3 -0
  159. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_065m1.j._.js +1 -1
  160. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0ejgygh._.js +1 -1
  161. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0jns2ew._.js +3 -0
  162. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0o9jhcn._.js +9 -0
  163. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0xf3ffa._.js +3 -0
  164. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_error_tsx_01x7ppm._.js +1 -1
  165. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_0ls1exu._.js +3 -0
  166. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_0ugdjlb._.js +3 -0
  167. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_shared_relative-time_tsx_0b7s9rc._.js +1 -1
  168. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_ui_dropdown-menu_tsx_0c~d-fd._.js +1 -1
  169. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_ui_select_tsx_0ys.i47._.js +1 -1
  170. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0ld4qfm._.js +3 -0
  171. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_125b4co._.js +3 -0
  172. package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +3 -3
  173. package/dist/dashboard-runtime/dashboard/.next/server/pages/404.html +1 -1
  174. package/dist/dashboard-runtime/dashboard/.next/server/pages/500.html +1 -1
  175. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.js +1 -1
  176. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.json +1 -1
  177. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-2yqm.ft6yzy.js +1 -0
  178. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-ov0wxgu5b65.js +1 -0
  179. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0.2e8ciiogw04.js +1 -0
  180. package/dist/dashboard-runtime/dashboard/.next/static/chunks/00-qnlax_4630.js +1 -0
  181. package/dist/dashboard-runtime/dashboard/.next/static/chunks/03zdsc.dicedw.js +1 -0
  182. package/dist/dashboard-runtime/dashboard/.next/static/chunks/069zf4m5f.se2.js +1 -0
  183. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08e9vvmr~0bqr.js +1 -0
  184. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08i99xsvs8o5s.js +1 -0
  185. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08tdws.ontiw1.js +1 -0
  186. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0azwigiwuhh08.css +1 -0
  187. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0b54rtt1-cxht.js +1 -0
  188. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{154aheeo3m6bg.js → 0bpginsuceywq.js} +1 -1
  189. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0ai8f~-9ig.gz.js → 0cdo38.8y_jr2.js} +5 -5
  190. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0cto67_iw~p9z.js +1 -0
  191. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0cy.fvgx7dgqx.js +4 -0
  192. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0fa.nak91jfo-.js +1 -0
  193. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0fv6q06wgazh_.js +1 -0
  194. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0g9y74cipd10n.js +1 -0
  195. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ga6neugwmh.1.js +5 -0
  196. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0h77.bqx5ltem.js +1 -0
  197. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ix_suxk3spjj.js +1 -0
  198. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0k-x6_7dhqb~c.js +1 -0
  199. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0lrw.bnws62y9.js +1 -0
  200. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0mea2ylxe.umh.js +1 -0
  201. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0yzz97.2e6if6.js → 0n42fh.zwyk35.js} +5 -5
  202. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0dqag6qsw7xv8.js → 0px2r0l_3kp2t.js} +1 -1
  203. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0q6lk_p74rti7.js +1 -0
  204. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0t0yqi68~eil6.js +1 -0
  205. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0td9nhfbpbmyt.js +1 -0
  206. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u39cc6mmeqb3.js +1 -0
  207. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u6_s-0w8.yr..js +1 -0
  208. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0uay29z9qqouw.js +1 -0
  209. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v0e.nl_9fjba.js +1 -0
  210. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0wd0_x8u.jzur.js +1 -0
  211. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0wf-nssu2qd_2.js +1 -0
  212. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x7pw1zo7nxno.js +1 -0
  213. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{05_578ka0ga8d.js → 12pz6ag1s~te_.js} +1 -1
  214. package/dist/dashboard-runtime/dashboard/.next/static/chunks/15bzqpm440jvz.js +1 -0
  215. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/chat/page.tsx +39 -38
  216. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/error.tsx +1 -1
  217. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/documents/documents-client.tsx +0 -1
  218. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/layout-client.tsx +191 -40
  219. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/qa/page.tsx +18 -19
  220. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/retrieval/retrieval-client.tsx +8 -7
  221. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/layout.tsx +3 -10
  222. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/layout.tsx +128 -22
  223. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/search/page.tsx +15 -8
  224. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/projects/page.tsx +1 -1
  225. package/dist/dashboard-runtime/dashboard/src/app/error.tsx +1 -1
  226. package/dist/dashboard-runtime/dashboard/src/app/globals.css +115 -95
  227. package/dist/dashboard-runtime/dashboard/src/app/not-found.tsx +1 -1
  228. package/dist/dashboard-runtime/dashboard/src/app/onboarding/page.tsx +2 -2
  229. package/dist/dashboard-runtime/dashboard/src/components/chat/add-mount-row.tsx +48 -39
  230. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-chunks-dialog.tsx +49 -25
  231. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-columns.tsx +57 -46
  232. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-table.tsx +2 -4
  233. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-toolbar.tsx +1 -1
  234. package/dist/dashboard-runtime/dashboard/src/components/layout/detail-sidebar.tsx +331 -0
  235. package/dist/dashboard-runtime/dashboard/src/components/layout/help-link.tsx +58 -0
  236. package/dist/dashboard-runtime/dashboard/src/components/layout/page-header.tsx +130 -11
  237. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-instance-card.tsx +203 -0
  238. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-item.tsx +14 -11
  239. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-mobile.tsx +37 -29
  240. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-usage-stats.tsx +26 -0
  241. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar.tsx +94 -46
  242. package/dist/dashboard-runtime/dashboard/src/components/layout/theme-toggle.tsx +161 -41
  243. package/dist/dashboard-runtime/dashboard/src/components/memory/requests-histogram-chart.tsx +2 -2
  244. package/dist/dashboard-runtime/dashboard/src/components/qa/qa-chat-panel.tsx +1 -1
  245. package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-form.tsx +100 -17
  246. package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-rerank-fields.tsx +60 -23
  247. package/dist/dashboard-runtime/dashboard/src/components/shared/empty-state.tsx +1 -1
  248. package/dist/dashboard-runtime/dashboard/src/components/shared/error-state.tsx +1 -1
  249. package/dist/dashboard-runtime/dashboard/src/components/shared/llm-model-selector.tsx +160 -70
  250. package/dist/dashboard-runtime/dashboard/src/components/shared/relative-time.tsx +30 -6
  251. package/dist/dashboard-runtime/dashboard/src/components/ui/badge.tsx +16 -5
  252. package/dist/dashboard-runtime/dashboard/src/components/ui/button.tsx +9 -8
  253. package/dist/dashboard-runtime/dashboard/src/components/ui/card.tsx +14 -8
  254. package/dist/dashboard-runtime/dashboard/src/components/ui/chat-bubble.tsx +60 -0
  255. package/dist/dashboard-runtime/dashboard/src/components/ui/command.tsx +1 -1
  256. package/dist/dashboard-runtime/dashboard/src/components/ui/data-card.tsx +57 -0
  257. package/dist/dashboard-runtime/dashboard/src/components/ui/detail-section.tsx +40 -0
  258. package/dist/dashboard-runtime/dashboard/src/components/ui/dialog.tsx +7 -7
  259. package/dist/dashboard-runtime/dashboard/src/components/ui/dropdown-menu.tsx +6 -6
  260. package/dist/dashboard-runtime/dashboard/src/components/ui/empty-state.tsx +42 -0
  261. package/dist/dashboard-runtime/dashboard/src/components/ui/filter-pill.tsx +90 -0
  262. package/dist/dashboard-runtime/dashboard/src/components/ui/form.tsx +3 -3
  263. package/dist/dashboard-runtime/dashboard/src/components/ui/input.tsx +5 -1
  264. package/dist/dashboard-runtime/dashboard/src/components/ui/item-card.tsx +88 -0
  265. package/dist/dashboard-runtime/dashboard/src/components/ui/label.tsx +1 -1
  266. package/dist/dashboard-runtime/dashboard/src/components/ui/memory-row.tsx +63 -0
  267. package/dist/dashboard-runtime/dashboard/src/components/ui/mini-stat.tsx +48 -0
  268. package/dist/dashboard-runtime/dashboard/src/components/ui/nav-tab-bar.tsx +60 -0
  269. package/dist/dashboard-runtime/dashboard/src/components/ui/playground-shell.tsx +69 -0
  270. package/dist/dashboard-runtime/dashboard/src/components/ui/popover.tsx +1 -1
  271. package/dist/dashboard-runtime/dashboard/src/components/ui/result-row.tsx +37 -0
  272. package/dist/dashboard-runtime/dashboard/src/components/ui/scope-tag.tsx +30 -0
  273. package/dist/dashboard-runtime/dashboard/src/components/ui/select.tsx +6 -5
  274. package/dist/dashboard-runtime/dashboard/src/components/ui/sheet.tsx +4 -4
  275. package/dist/dashboard-runtime/dashboard/src/components/ui/sonner.tsx +1 -1
  276. package/dist/dashboard-runtime/dashboard/src/components/ui/stat-card.tsx +58 -0
  277. package/dist/dashboard-runtime/dashboard/src/components/ui/table.tsx +13 -6
  278. package/dist/dashboard-runtime/dashboard/src/components/ui/textarea.tsx +4 -1
  279. package/dist/dashboard-runtime/dashboard/src/components/ui/tooltip.tsx +1 -1
  280. package/dist/dashboard-runtime/dashboard/src/components/ui/usage-card.tsx +43 -0
  281. package/dist/dashboard-runtime/dashboard/src/config/navigation.ts +50 -9
  282. package/dist/dashboard-runtime/dashboard/tailwind.config.ts +47 -12
  283. package/package.json +1 -1
  284. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0-kiaf5._.js +0 -3
  285. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0_r24-c._.js +0 -3
  286. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__11yei-s._.js +0 -3
  287. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0303qx7._.js +0 -3
  288. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_06l.12l._.js +0 -3
  289. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09eom0_._.js +0 -3
  290. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0cd.__9._.js +0 -7
  291. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0dqi8bq._.js +0 -3
  292. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0e9y.xc._.js +0 -3
  293. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0f9u8i2._.js +0 -3
  294. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0fbjpet._.js +0 -3
  295. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0i8py_a._.js +0 -3
  296. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0jlt.cx._.js +0 -3
  297. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0n5uozy._.js +0 -3
  298. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0o32d.y._.js +0 -3
  299. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0suxzcc._.js +0 -3
  300. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tyxwr3._.js +0 -3
  301. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0u9md36._.js +0 -3
  302. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0v4jb2q._.js +0 -3
  303. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0vzw0pw._.js +0 -3
  304. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0z0rlpq._.js +0 -3
  305. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0zn.ayc._.js +0 -3
  306. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_13l7w34._.js +0 -3
  307. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0o4a.29._.js +0 -3
  308. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0suis9l._.js +0 -9
  309. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_10mc58z._.js +0 -3
  310. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_knowledge-base_[name]_layout-client_tsx_05momc5._.js +0 -3
  311. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_retrieval_02c2uck._.js +0 -3
  312. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0qdd37m._.js +0 -3
  313. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_11mc1z9._.js +0 -3
  314. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-etecbti5x22.js +0 -1
  315. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-xqk6wfme5fu.js +0 -1
  316. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0.yj.t1hbwkg4.js +0 -1
  317. package/dist/dashboard-runtime/dashboard/.next/static/chunks/031-scv-8sah9.js +0 -1
  318. package/dist/dashboard-runtime/dashboard/.next/static/chunks/05ow1qzcjz3pz.js +0 -1
  319. package/dist/dashboard-runtime/dashboard/.next/static/chunks/07iqor2nl~iqc.js +0 -1
  320. package/dist/dashboard-runtime/dashboard/.next/static/chunks/087x52iesmpfe.js +0 -1
  321. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08an3157he_ad.js +0 -1
  322. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0aak.679si-3m.js +0 -1
  323. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0c5tcbhzpwen7.js +0 -1
  324. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0dheju1t18upn.js +0 -1
  325. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ffr1_o~ss8r8.js +0 -1
  326. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0h38qfpz-dmiu.js +0 -1
  327. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0l1fmyhvp-k49.js +0 -1
  328. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0pcp6pjjz7o49.js +0 -1
  329. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0pdq-gljpy7gd.js +0 -1
  330. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0q6-s11w9.sgo.js +0 -1
  331. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rnm58mg0whfk.js +0 -1
  332. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rxp5ykl1_lyb.js +0 -4
  333. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0sg6z8.ci0l2b.js +0 -1
  334. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v_~favugkv_a.js +0 -1
  335. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x3ysmon_~xsv.js +0 -1
  336. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x7sjde5wit~i.js +0 -1
  337. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~alekqkiwwaq.js +0 -1
  338. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~e2n9bhosscr.js +0 -1
  339. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~i4llb9-utpp.css +0 -1
  340. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~n-y9cstar6b.js +0 -5
  341. package/dist/dashboard-runtime/dashboard/.next/static/chunks/14z_j1qzycpe1.js +0 -1
  342. package/dist/dashboard-runtime/dashboard/.next/static/chunks/17k4h5zgalxqj.js +0 -1
  343. package/dist/dashboard-runtime/dashboard/.next/static/chunks/17m1wc_o0.5iz.js +0 -1
  344. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-header.tsx +0 -91
  345. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-tab-nav.tsx +0 -62
  346. package/dist/dashboard-runtime/dashboard/src/components/layout/breadcrumb-bar.tsx +0 -115
  347. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-header.tsx +0 -46
  348. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-tab-nav.tsx +0 -54
  349. /package/dist/dashboard-runtime/dashboard/.next/static/{nPPow7lCVx1fYDGH2XCxQ → uYteIiFtKdPhUhmILps5X}/_buildManifest.js +0 -0
  350. /package/dist/dashboard-runtime/dashboard/.next/static/{nPPow7lCVx1fYDGH2XCxQ → uYteIiFtKdPhUhmILps5X}/_clientMiddlewareManifest.js +0 -0
  351. /package/dist/dashboard-runtime/dashboard/.next/static/{nPPow7lCVx1fYDGH2XCxQ → uYteIiFtKdPhUhmILps5X}/_ssgManifest.js +0 -0
@@ -115,7 +115,7 @@ const CommandItem = React.forwardRef<
115
115
  <CommandPrimitive.Item
116
116
  ref={ref}
117
117
  className={cn(
118
- "relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
118
+ "relative flex cursor-pointer gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled=true]:pointer-events-none data-[selected=true]:bg-[hsl(var(--primary-soft))] data-[selected=true]:text-[hsl(var(--primary))] data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
119
119
  className
120
120
  )}
121
121
  {...props}
@@ -0,0 +1,57 @@
1
+ import * as React from "react"
2
+
3
+ import { cn } from "@/lib/utils"
4
+
5
+ export const DataCard = React.forwardRef<
6
+ HTMLDivElement,
7
+ React.HTMLAttributes<HTMLDivElement>
8
+ >(({ className, ...props }, ref) => (
9
+ <div
10
+ ref={ref}
11
+ className={cn(
12
+ "flex flex-col overflow-hidden rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))]",
13
+ className,
14
+ )}
15
+ {...props}
16
+ />
17
+ ))
18
+ DataCard.displayName = "DataCard"
19
+
20
+ interface DataCardHeaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
21
+ title?: React.ReactNode
22
+ actions?: React.ReactNode
23
+ }
24
+
25
+ export const DataCardHeader = React.forwardRef<HTMLDivElement, DataCardHeaderProps>(
26
+ ({ className, title, actions, children, ...props }, ref) => (
27
+ <div
28
+ ref={ref}
29
+ className={cn(
30
+ "flex items-center justify-between gap-3 border-b border-[hsl(var(--border))] px-5 py-3.5",
31
+ className,
32
+ )}
33
+ {...props}
34
+ >
35
+ {title ? (
36
+ <h3 className="text-[15px] font-semibold leading-tight text-[hsl(var(--foreground))]">
37
+ {title}
38
+ </h3>
39
+ ) : null}
40
+ {children}
41
+ {actions ? <div className="flex items-center gap-2">{actions}</div> : null}
42
+ </div>
43
+ ),
44
+ )
45
+ DataCardHeader.displayName = "DataCardHeader"
46
+
47
+ export const DataCardBody = React.forwardRef<
48
+ HTMLDivElement,
49
+ React.HTMLAttributes<HTMLDivElement>
50
+ >(({ className, ...props }, ref) => (
51
+ <div
52
+ ref={ref}
53
+ className={cn("flex-1 px-5 py-4", className)}
54
+ {...props}
55
+ />
56
+ ))
57
+ DataCardBody.displayName = "DataCardBody"
@@ -0,0 +1,40 @@
1
+ import * as React from "react"
2
+
3
+ import { cn } from "@/lib/utils"
4
+
5
+ interface DetailSectionProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
6
+ title?: React.ReactNode
7
+ description?: React.ReactNode
8
+ actions?: React.ReactNode
9
+ }
10
+
11
+ export const DetailSection = React.forwardRef<HTMLDivElement, DetailSectionProps>(
12
+ ({ className, title, description, actions, children, ...props }, ref) => (
13
+ <section
14
+ ref={ref}
15
+ className={cn(
16
+ "mb-4 rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-5",
17
+ className,
18
+ )}
19
+ {...props}
20
+ >
21
+ {title ? (
22
+ <header className="mb-3.5 flex items-center justify-between gap-3 border-b border-[hsl(var(--border-light))] pb-2.5">
23
+ <div>
24
+ <h3 className="text-[15px] font-semibold text-[hsl(var(--foreground))]">
25
+ {title}
26
+ </h3>
27
+ {description ? (
28
+ <p className="mt-1 text-xs text-[hsl(var(--muted-foreground))]">
29
+ {description}
30
+ </p>
31
+ ) : null}
32
+ </div>
33
+ {actions ? <div className="flex items-center gap-2">{actions}</div> : null}
34
+ </header>
35
+ ) : null}
36
+ {children}
37
+ </section>
38
+ ),
39
+ )
40
+ DetailSection.displayName = "DetailSection"
@@ -19,7 +19,7 @@ const DialogOverlay = React.forwardRef<
19
19
  <DialogPrimitive.Overlay
20
20
  ref={ref}
21
21
  className={cn(
22
- "fixed inset-0 z-50 bg-black/60 backdrop-blur-sm duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
22
+ "fixed inset-0 z-50 bg-black/30 backdrop-blur-sm duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
23
23
  className
24
24
  )}
25
25
  {...props}
@@ -36,20 +36,20 @@ const DialogContent = React.forwardRef<
36
36
  <DialogPrimitive.Content
37
37
  ref={ref}
38
38
  className={cn(
39
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-xl border p-6 shadow-xl",
39
+ "fixed left-[50%] top-[50%] z-50 grid w-full max-w-[480px] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-[hsl(var(--border))] p-6 shadow-md",
40
40
  "duration-200 ease-[cubic-bezier(0.34,1.56,0.64,1)]",
41
41
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
42
42
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
43
43
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
44
44
  "data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]",
45
45
  "data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]",
46
- "bg-[hsl(var(--background))] text-[hsl(var(--foreground))]",
46
+ "bg-[hsl(var(--card))] text-[hsl(var(--foreground))]",
47
47
  className,
48
48
  )}
49
49
  {...props}
50
50
  >
51
51
  {children}
52
- <DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
52
+ <DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[hsl(var(--primary)/0.3)] focus:ring-offset-2 disabled:pointer-events-none">
53
53
  <X className="h-4 w-4" />
54
54
  <span className="sr-only">Close</span>
55
55
  </DialogPrimitive.Close>
@@ -78,7 +78,7 @@ const DialogFooter = ({
78
78
  }: React.HTMLAttributes<HTMLDivElement>) => (
79
79
  <div
80
80
  className={cn(
81
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
81
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
82
82
  className
83
83
  )}
84
84
  {...props}
@@ -93,7 +93,7 @@ const DialogTitle = React.forwardRef<
93
93
  <DialogPrimitive.Title
94
94
  ref={ref}
95
95
  className={cn(
96
- "text-lg font-semibold leading-none tracking-tight",
96
+ "text-base font-semibold leading-tight",
97
97
  className
98
98
  )}
99
99
  {...props}
@@ -107,7 +107,7 @@ const DialogDescription = React.forwardRef<
107
107
  >(({ className, ...props }, ref) => (
108
108
  <DialogPrimitive.Description
109
109
  ref={ref}
110
- className={cn("text-sm text-muted-foreground", className)}
110
+ className={cn("text-sm text-[hsl(var(--muted-foreground))] mt-1", className)}
111
111
  {...props}
112
112
  />
113
113
  ))
@@ -25,7 +25,7 @@ const DropdownMenuSubTrigger = React.forwardRef<
25
25
  <DropdownMenuPrimitive.SubTrigger
26
26
  ref={ref}
27
27
  className={cn(
28
- "flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
28
+ "flex cursor-default select-none items-center gap-2 rounded-sm px-3 py-1.5 text-sm outline-none focus:bg-[hsl(var(--primary-soft))] focus:text-[hsl(var(--primary))] data-[state=open]:bg-[hsl(var(--primary-soft))] data-[state=open]:text-[hsl(var(--primary))] [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
29
29
  inset && "pl-8",
30
30
  className
31
31
  )}
@@ -45,7 +45,7 @@ const DropdownMenuSubContent = React.forwardRef<
45
45
  <DropdownMenuPrimitive.SubContent
46
46
  ref={ref}
47
47
  className={cn(
48
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-dropdown-menu-content-transform-origin]",
48
+ "z-50 min-w-[160px] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] 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 origin-[--radix-dropdown-menu-content-transform-origin]",
49
49
  className
50
50
  )}
51
51
  {...props}
@@ -63,7 +63,7 @@ const DropdownMenuContent = React.forwardRef<
63
63
  ref={ref}
64
64
  sideOffset={sideOffset}
65
65
  className={cn(
66
- "z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-md",
66
+ "z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[160px] overflow-y-auto overflow-x-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-md",
67
67
  "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 origin-[--radix-dropdown-menu-content-transform-origin]",
68
68
  className
69
69
  )}
@@ -82,7 +82,7 @@ const DropdownMenuItem = React.forwardRef<
82
82
  <DropdownMenuPrimitive.Item
83
83
  ref={ref}
84
84
  className={cn(
85
- "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-[hsl(var(--accent))] focus:text-[hsl(var(--accent-foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
85
+ "relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-3 py-1.5 text-sm outline-none transition-colors focus:bg-[hsl(var(--primary-soft))] focus:text-[hsl(var(--primary))] hover:bg-[hsl(var(--primary-soft))] hover:text-[hsl(var(--primary))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
86
86
  inset && "pl-8",
87
87
  className
88
88
  )}
@@ -146,7 +146,7 @@ const DropdownMenuLabel = React.forwardRef<
146
146
  <DropdownMenuPrimitive.Label
147
147
  ref={ref}
148
148
  className={cn(
149
- "px-2 py-1.5 text-sm font-semibold",
149
+ "px-3 py-1.5 text-xs font-semibold uppercase tracking-wider text-[hsl(var(--muted-foreground))]",
150
150
  inset && "pl-8",
151
151
  className
152
152
  )}
@@ -161,7 +161,7 @@ const DropdownMenuSeparator = React.forwardRef<
161
161
  >(({ className, ...props }, ref) => (
162
162
  <DropdownMenuPrimitive.Separator
163
163
  ref={ref}
164
- className={cn("-mx-1 my-1 h-px bg-muted", className)}
164
+ className={cn("-mx-1 my-1 h-px bg-[hsl(var(--border-light))]", className)}
165
165
  {...props}
166
166
  />
167
167
  ))
@@ -0,0 +1,42 @@
1
+ import * as React from "react"
2
+
3
+ import { cn } from "@/lib/utils"
4
+
5
+ interface EmptyStateProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
6
+ icon?: React.ReactNode
7
+ title?: React.ReactNode
8
+ description?: React.ReactNode
9
+ action?: React.ReactNode
10
+ }
11
+
12
+ export const EmptyState = React.forwardRef<HTMLDivElement, EmptyStateProps>(
13
+ ({ className, icon, title, description, action, children, ...props }, ref) => (
14
+ <div
15
+ ref={ref}
16
+ className={cn(
17
+ "flex flex-col items-center justify-center py-12 px-5 text-center",
18
+ className,
19
+ )}
20
+ {...props}
21
+ >
22
+ {icon ? (
23
+ <div className="mb-3 flex h-12 w-12 items-center justify-center rounded-full bg-[hsl(var(--secondary))] text-[hsl(var(--muted-foreground))] [&>svg]:h-6 [&>svg]:w-6">
24
+ {icon}
25
+ </div>
26
+ ) : null}
27
+ {title ? (
28
+ <p className="mb-1 text-sm font-medium text-[hsl(var(--foreground))]">
29
+ {title}
30
+ </p>
31
+ ) : null}
32
+ {description ? (
33
+ <p className="mb-4 max-w-sm text-xs text-[hsl(var(--muted-foreground))]">
34
+ {description}
35
+ </p>
36
+ ) : null}
37
+ {action}
38
+ {children}
39
+ </div>
40
+ ),
41
+ )
42
+ EmptyState.displayName = "EmptyState"
@@ -0,0 +1,90 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+
5
+ import { cn } from "@/lib/utils"
6
+
7
+ interface FilterPillGroupContextValue {
8
+ value: string
9
+ onValueChange: (value: string) => void
10
+ }
11
+
12
+ const FilterPillGroupContext = React.createContext<FilterPillGroupContextValue | null>(
13
+ null,
14
+ )
15
+
16
+ interface FilterPillGroupProps extends React.HTMLAttributes<HTMLDivElement> {
17
+ value: string
18
+ onValueChange: (value: string) => void
19
+ }
20
+
21
+ export function FilterPillGroup({
22
+ value,
23
+ onValueChange,
24
+ className,
25
+ children,
26
+ ...props
27
+ }: FilterPillGroupProps) {
28
+ return (
29
+ <FilterPillGroupContext.Provider value={{ value, onValueChange }}>
30
+ <div
31
+ role="radiogroup"
32
+ className={cn("flex flex-wrap items-center gap-2", className)}
33
+ {...props}
34
+ >
35
+ {children}
36
+ </div>
37
+ </FilterPillGroupContext.Provider>
38
+ )
39
+ }
40
+
41
+ interface FilterPillProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
42
+ value: string
43
+ count?: number
44
+ }
45
+
46
+ export const FilterPill = React.forwardRef<HTMLButtonElement, FilterPillProps>(
47
+ ({ className, value, count, children, onClick, ...props }, ref) => {
48
+ const ctx = React.useContext(FilterPillGroupContext)
49
+ if (!ctx) {
50
+ throw new Error("FilterPill must be used within FilterPillGroup")
51
+ }
52
+ const active = ctx.value === value
53
+ return (
54
+ <button
55
+ ref={ref}
56
+ type="button"
57
+ role="radio"
58
+ aria-checked={active}
59
+ data-state={active ? "on" : "off"}
60
+ onClick={(e) => {
61
+ ctx.onValueChange(value)
62
+ onClick?.(e)
63
+ }}
64
+ className={cn(
65
+ "inline-flex items-center gap-1.5 rounded-full border px-3.5 py-1 text-[13px] transition-colors",
66
+ active
67
+ ? "border-[hsl(var(--foreground))] bg-[hsl(var(--foreground))] text-[hsl(var(--background))]"
68
+ : "border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--muted-foreground))] hover:border-[hsl(var(--muted-foreground))]",
69
+ className,
70
+ )}
71
+ {...props}
72
+ >
73
+ <span>{children}</span>
74
+ {typeof count === "number" ? (
75
+ <span
76
+ className={cn(
77
+ "rounded-full px-1.5 text-[11px] font-medium leading-tight",
78
+ active
79
+ ? "bg-[hsl(var(--background)/0.15)]"
80
+ : "bg-[hsl(var(--secondary))]",
81
+ )}
82
+ >
83
+ {count}
84
+ </span>
85
+ ) : null}
86
+ </button>
87
+ )
88
+ },
89
+ )
90
+ FilterPill.displayName = "FilterPill"
@@ -80,7 +80,7 @@ const FormItem = React.forwardRef<
80
80
 
81
81
  return (
82
82
  <FormItemContext.Provider value={{ id }}>
83
- <div ref={ref} className={cn("space-y-2", className)} {...props} />
83
+ <div ref={ref} className={cn("space-y-1.5 mb-4", className)} {...props} />
84
84
  </FormItemContext.Provider>
85
85
  )
86
86
  })
@@ -135,7 +135,7 @@ const FormDescription = React.forwardRef<
135
135
  <p
136
136
  ref={ref}
137
137
  id={formDescriptionId}
138
- className={cn("text-[0.8rem] text-muted-foreground", className)}
138
+ className={cn("text-xs text-[hsl(var(--muted-foreground))]", className)}
139
139
  {...props}
140
140
  />
141
141
  )
@@ -157,7 +157,7 @@ const FormMessage = React.forwardRef<
157
157
  <p
158
158
  ref={ref}
159
159
  id={formMessageId}
160
- className={cn("text-[0.8rem] font-medium text-[hsl(var(--destructive))]", className)}
160
+ className={cn("text-xs font-medium text-[hsl(var(--destructive))]", className)}
161
161
  {...props}
162
162
  >
163
163
  {body}
@@ -8,7 +8,11 @@ const Input = React.forwardRef<HTMLInputElement, React.ComponentProps<"input">>(
8
8
  <input
9
9
  type={type}
10
10
  className={cn(
11
- "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
11
+ "flex h-8 w-full rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] px-3 py-1 text-sm transition-colors",
12
+ "file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground",
13
+ "placeholder:text-[hsl(var(--subtle))]",
14
+ "focus-visible:outline-none focus-visible:border-[hsl(var(--primary))] focus-visible:ring-2 focus-visible:ring-[hsl(var(--primary)/0.2)] focus-visible:ring-offset-0",
15
+ "disabled:cursor-not-allowed disabled:bg-[hsl(var(--secondary))] disabled:text-[hsl(var(--muted-foreground))]",
12
16
  className
13
17
  )}
14
18
  ref={ref}
@@ -0,0 +1,88 @@
1
+ import * as React from "react"
2
+ import { Slot } from "@radix-ui/react-slot"
3
+ import { cva, type VariantProps } from "class-variance-authority"
4
+
5
+ import { cn } from "@/lib/utils"
6
+
7
+ const iconAccent = cva(
8
+ "flex h-10 w-10 items-center justify-center rounded-lg text-xl [&>svg]:h-5 [&>svg]:w-5",
9
+ {
10
+ variants: {
11
+ iconAccent: {
12
+ primary: "bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",
13
+ success: "bg-[hsl(var(--success-soft))] text-[hsl(var(--success))]",
14
+ warning: "bg-[hsl(var(--warning-soft))] text-[hsl(var(--warning))]",
15
+ danger: "bg-[hsl(var(--danger-soft))] text-[hsl(var(--danger))]",
16
+ purple: "bg-[hsl(var(--purple-soft))] text-[hsl(var(--purple))]",
17
+ },
18
+ },
19
+ defaultVariants: {
20
+ iconAccent: "primary",
21
+ },
22
+ },
23
+ )
24
+
25
+ interface ItemCardProps
26
+ extends Omit<React.HTMLAttributes<HTMLDivElement>, "title">,
27
+ VariantProps<typeof iconAccent> {
28
+ icon?: React.ReactNode
29
+ title: React.ReactNode
30
+ titleExtra?: React.ReactNode
31
+ description?: React.ReactNode
32
+ meta?: React.ReactNode
33
+ asChild?: boolean
34
+ }
35
+
36
+ export const ItemCard = React.forwardRef<HTMLDivElement, ItemCardProps>(
37
+ (
38
+ {
39
+ className,
40
+ icon,
41
+ iconAccent: accent,
42
+ title,
43
+ titleExtra,
44
+ description,
45
+ meta,
46
+ asChild = false,
47
+ children,
48
+ ...props
49
+ },
50
+ ref,
51
+ ) => {
52
+ const Comp = asChild ? Slot : "div"
53
+ return (
54
+ <Comp
55
+ ref={ref}
56
+ className={cn(
57
+ "group flex h-full cursor-pointer flex-col rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-5 transition-all hover:border-[hsl(var(--primary))] hover:shadow-primary-soft",
58
+ className,
59
+ )}
60
+ {...props}
61
+ >
62
+ {icon ? (
63
+ <div className={cn(iconAccent({ iconAccent: accent }), "mb-3")}>
64
+ {icon}
65
+ </div>
66
+ ) : null}
67
+ <div className="mb-1.5 flex items-center justify-between gap-2">
68
+ <span className="truncate text-[15px] font-semibold text-[hsl(var(--foreground))]">
69
+ {title}
70
+ </span>
71
+ {titleExtra ? <span className="shrink-0">{titleExtra}</span> : null}
72
+ </div>
73
+ {description ? (
74
+ <p className="mb-3 line-clamp-2 flex-1 text-[13px] text-[hsl(var(--muted-foreground))]">
75
+ {description}
76
+ </p>
77
+ ) : null}
78
+ {meta ? (
79
+ <div className="mt-auto flex flex-wrap items-center gap-3 text-xs text-[hsl(var(--subtle))]">
80
+ {meta}
81
+ </div>
82
+ ) : null}
83
+ {children}
84
+ </Comp>
85
+ )
86
+ },
87
+ )
88
+ ItemCard.displayName = "ItemCard"
@@ -5,7 +5,7 @@ import { cva, type VariantProps } from "class-variance-authority"
5
5
  import { cn } from "@/lib/utils"
6
6
 
7
7
  const labelVariants = cva(
8
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
8
+ "text-sm font-medium leading-none text-[hsl(var(--foreground))] peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
9
9
  )
10
10
 
11
11
  const Label = React.forwardRef<
@@ -0,0 +1,63 @@
1
+ import * as React from "react"
2
+
3
+ import { cn } from "@/lib/utils"
4
+
5
+ export const MemoryRow = React.forwardRef<
6
+ HTMLDivElement,
7
+ React.HTMLAttributes<HTMLDivElement>
8
+ >(({ className, ...props }, ref) => (
9
+ <div
10
+ ref={ref}
11
+ className={cn(
12
+ "group border-b border-[hsl(var(--border-light))] px-1 py-3.5 transition-colors last:border-b-0 hover:bg-[hsl(var(--background))]",
13
+ className,
14
+ )}
15
+ {...props}
16
+ />
17
+ ))
18
+ MemoryRow.displayName = "MemoryRow"
19
+
20
+ export const MemoryRowContent = React.forwardRef<
21
+ HTMLDivElement,
22
+ React.HTMLAttributes<HTMLDivElement>
23
+ >(({ className, ...props }, ref) => (
24
+ <div
25
+ ref={ref}
26
+ className={cn(
27
+ "mb-1.5 text-sm leading-6 text-[hsl(var(--foreground))]",
28
+ className,
29
+ )}
30
+ {...props}
31
+ />
32
+ ))
33
+ MemoryRowContent.displayName = "MemoryRowContent"
34
+
35
+ export const MemoryRowMeta = React.forwardRef<
36
+ HTMLDivElement,
37
+ React.HTMLAttributes<HTMLDivElement>
38
+ >(({ className, ...props }, ref) => (
39
+ <div
40
+ ref={ref}
41
+ className={cn(
42
+ "flex flex-wrap items-center gap-2.5 text-xs text-[hsl(var(--subtle))]",
43
+ className,
44
+ )}
45
+ {...props}
46
+ />
47
+ ))
48
+ MemoryRowMeta.displayName = "MemoryRowMeta"
49
+
50
+ export const MemoryRowActions = React.forwardRef<
51
+ HTMLDivElement,
52
+ React.HTMLAttributes<HTMLDivElement>
53
+ >(({ className, ...props }, ref) => (
54
+ <div
55
+ ref={ref}
56
+ className={cn(
57
+ "ml-auto flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100",
58
+ className,
59
+ )}
60
+ {...props}
61
+ />
62
+ ))
63
+ MemoryRowActions.displayName = "MemoryRowActions"
@@ -0,0 +1,48 @@
1
+ import * as React from "react"
2
+ import { cva, type VariantProps } from "class-variance-authority"
3
+
4
+ import { cn } from "@/lib/utils"
5
+
6
+ const miniStatValue = cva("text-lg font-bold leading-none", {
7
+ variants: {
8
+ accent: {
9
+ foreground: "text-[hsl(var(--foreground))]",
10
+ primary: "text-[hsl(var(--primary))]",
11
+ success: "text-[hsl(var(--success))]",
12
+ warning: "text-[hsl(var(--warning))]",
13
+ danger: "text-[hsl(var(--danger))]",
14
+ purple: "text-[hsl(var(--purple))]",
15
+ },
16
+ },
17
+ defaultVariants: {
18
+ accent: "foreground",
19
+ },
20
+ })
21
+
22
+ interface MiniStatProps
23
+ extends React.HTMLAttributes<HTMLDivElement>,
24
+ VariantProps<typeof miniStatValue> {
25
+ label: React.ReactNode
26
+ value: React.ReactNode
27
+ }
28
+
29
+ export function MiniStat({
30
+ className,
31
+ label,
32
+ value,
33
+ accent,
34
+ ...props
35
+ }: MiniStatProps) {
36
+ return (
37
+ <div
38
+ className={cn(
39
+ "inline-flex min-w-[70px] flex-col items-center gap-1 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] px-4 py-2",
40
+ className,
41
+ )}
42
+ {...props}
43
+ >
44
+ <span className="text-[11px] text-[hsl(var(--subtle))]">{label}</span>
45
+ <span className={cn(miniStatValue({ accent }))}>{value}</span>
46
+ </div>
47
+ )
48
+ }
@@ -0,0 +1,60 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import Link from "next/link"
5
+ import { usePathname } from "next/navigation"
6
+
7
+ import { cn } from "@/lib/utils"
8
+
9
+ interface NavTabBarProps extends React.HTMLAttributes<HTMLDivElement> {}
10
+
11
+ export function NavTabBar({ className, children, ...props }: NavTabBarProps) {
12
+ return (
13
+ <nav
14
+ className={cn(
15
+ "flex items-center gap-6 border-b border-[hsl(var(--border))]",
16
+ className,
17
+ )}
18
+ role="tablist"
19
+ {...props}
20
+ >
21
+ {children}
22
+ </nav>
23
+ )
24
+ }
25
+
26
+ interface NavTabProps {
27
+ href: string
28
+ icon?: React.ReactNode
29
+ children: React.ReactNode
30
+ /** When true, only an exact path match is treated as active. */
31
+ exact?: boolean
32
+ className?: string
33
+ }
34
+
35
+ export function NavTab({ href, icon, children, exact, className }: NavTabProps) {
36
+ const pathname = usePathname()
37
+ const active = exact
38
+ ? pathname === href
39
+ : pathname === href || pathname?.startsWith(`${href}/`)
40
+
41
+ return (
42
+ <Link
43
+ href={href}
44
+ role="tab"
45
+ aria-selected={active}
46
+ data-state={active ? "active" : "inactive"}
47
+ className={cn(
48
+ "relative flex h-10 items-center gap-1.5 px-0 text-sm font-medium transition-colors",
49
+ "hover:text-[hsl(var(--foreground))]",
50
+ active
51
+ ? "font-semibold text-[hsl(var(--primary))] after:absolute after:inset-x-0 after:bottom-[-1px] after:h-[2px] after:bg-[hsl(var(--primary))]"
52
+ : "text-[hsl(var(--muted-foreground))]",
53
+ className,
54
+ )}
55
+ >
56
+ {icon ? <span className="[&>svg]:h-4 [&>svg]:w-4">{icon}</span> : null}
57
+ {children}
58
+ </Link>
59
+ )
60
+ }