@tablestore/tablestore-agent-cli 0.2.0 → 0.2.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.
- package/dist/commands/kb/create.d.ts.map +1 -1
- package/dist/commands/kb/create.js +21 -0
- package/dist/commands/kb/create.js.map +1 -1
- package/dist/commands/kb/retrieve.d.ts.map +1 -1
- package/dist/commands/kb/retrieve.js +3 -3
- package/dist/commands/kb/retrieve.js.map +1 -1
- package/dist/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
- package/dist/dashboard-runtime/dashboard/.next/app-path-routes-manifest.json +1 -0
- package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +5 -5
- package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
- package/dist/dashboard-runtime/dashboard/.next/routes-manifest.json +6 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.rsc +14 -14
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route/app-paths-manifest.json +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route/build-manifest.json +9 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route/server-reference-manifest.json +4 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js +6 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js.map +5 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js.nft.json +1 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route_client-reference-manifest.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +14 -14
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +14 -14
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +10 -10
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.rsc +17 -17
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +17 -17
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +10 -10
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +4 -4
- package/dist/dashboard-runtime/dashboard/.next/server/app/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app-paths-manifest.json +1 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0n~ec7s.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0cee_lo._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0lvi0g-._.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0q8vcw8._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/dashboard__next-internal_server_app_api_v1_oss_list_route_actions_00xq2u..js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0b1r_app_(dashboard)_knowledge-base_[name]_documents_documents-client_tsx_0g2uxmt._.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0e95_src_app_(dashboard)_knowledge-base_[name]_settings_settings-client_tsx_13312zk._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0aqzu8w._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0hozzu6._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0jb9ccl._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__13ylf4x._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_02bg849._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09yzbcp._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0db498n._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0jghj2_._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0kd7szs._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0n4gd_6._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0ogxvev._.js +7 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tr8-3u._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0xzh5yw._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_12~3vfk._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_13_lb.o._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_065m1.j._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0ejgygh._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0y49vhd._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_10dsqx~._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_knowledge-base_create_page_tsx_0916~g-._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_0ls1exu._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_0ugdjlb._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_ui_0-tuf-h._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_08h.f_8._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0jns_ph._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0pf30rh._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0~k~1nt._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/functions-config-manifest.json +1 -0
- package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +5 -5
- package/dist/dashboard-runtime/dashboard/.next/server/pages/404.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/pages/500.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/00tz~p479bdgl.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/02i9olo-312mq.js +138 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/062k9jbtd9.lv.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/06uuhz24tvdt..js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/07cp19da_kfld.js +5 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/086esp1n941jl.js +138 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/08qlxn-3d_rtu.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/09uxq~55qug8c.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0__g1ogrdh412.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ab-ev0u1~ch5.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0bw682qzkh2ni.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0d29.l~3ip181.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ewpzgu_qf0wf.js +4 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0jc31diex030o.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0k79upjc40aky.css +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0lp2g_27uyhuz.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0snnsfosp3~gq.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0tmwptel_4y0o.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u9wtl06_b72x.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0uv55p7kzteex.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v9d5wl9nsva3.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0xko7~ja3xuc-.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/14.dp0-y_mhjo.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/15wxh8ltqt88_.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/183~u3-4a74db.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{turbopack-0ybyy.9-.w~ub.js → turbopack-0w.hw6u8qra5z.js} +1 -1
- package/dist/dashboard-runtime/dashboard/package.json +1 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/settings/settings-client.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/knowledge-bases/[name]/documents/route.ts +44 -3
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/oss/list/route.ts +125 -0
- package/dist/dashboard-runtime/dashboard/src/app/globals.css +46 -31
- package/dist/dashboard-runtime/dashboard/src/components/chat/add-mount-row.tsx +21 -55
- package/dist/dashboard-runtime/dashboard/src/components/chat/chat-mount-config.tsx +35 -27
- package/dist/dashboard-runtime/dashboard/src/components/chat/mount-empty-state.tsx +87 -0
- package/dist/dashboard-runtime/dashboard/src/components/chat/mount-picker.tsx +87 -0
- package/dist/dashboard-runtime/dashboard/src/components/chat/unified-retrieval-section.tsx +3 -2
- package/dist/dashboard-runtime/dashboard/src/components/documents/doc-upload-dialog.tsx +155 -54
- package/dist/dashboard-runtime/dashboard/src/components/documents/oss-browser.tsx +264 -0
- package/dist/dashboard-runtime/dashboard/src/components/documents/oss-import-tab.tsx +143 -0
- package/dist/dashboard-runtime/dashboard/src/components/instance/connect-instance-form.tsx +60 -60
- package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-create-form.tsx +52 -35
- package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-settings-form.tsx +152 -76
- package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/knowledge-base-retrieval-config.ts +110 -0
- package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/retrieval-result-count-field.tsx +106 -0
- package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/retrieval-result-count.ts +11 -0
- package/dist/dashboard-runtime/dashboard/src/components/layout/detail-sidebar.tsx +84 -4
- package/dist/dashboard-runtime/dashboard/src/components/retrieval/assemble-retrieval-configuration.ts +22 -3
- package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-form.tsx +10 -3
- package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-params-fields.tsx +114 -56
- package/dist/dashboard-runtime/dashboard/src/hooks/use-detail-sidebar-collapsed.ts +86 -0
- package/dist/dashboard-runtime/dashboard/src/hooks/use-oss-import.ts +148 -0
- package/dist/dashboard-runtime/dashboard/src/hooks/use-oss-list.ts +89 -0
- package/dist/dashboard-runtime/dashboard/src/lib/extension-filter.ts +62 -0
- package/dist/dashboard-runtime/dashboard/src/lib/glob-filter.ts +76 -0
- package/dist/dashboard-runtime/dashboard/src/lib/oss-selection.ts +58 -0
- package/dist/dashboard-runtime/dashboard/src/lib/server/oss-client.ts +65 -0
- package/dist/dashboard-runtime/dashboard/src/schemas/knowledge-base.ts +3 -3
- package/dist/dashboard-runtime/dashboard/src/schemas/llm-chat.ts +1 -1
- package/dist/dashboard-runtime/dashboard/src/schemas/retrieval.ts +4 -1
- package/dist/dashboard-runtime/dashboard/src/services/api-client.ts +11 -6
- package/dist/dashboard-runtime/dashboard/src/services/documents.ts +27 -8
- package/dist/dashboard-runtime/dashboard/src/services/oss.ts +36 -0
- package/dist/dashboard-runtime/dashboard/src/types/knowledge-base.ts +1 -1
- package/dist/dashboard-runtime/dashboard/vitest.config.mjs +6 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0lvo_@radix-ui_react-popper_dist_index_mjs_13rqw99._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0id.4_g._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0p7j-9i._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0.1szyw._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0251rsp._.js +0 -7
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_038vjn1._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_06tznmj._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09y~hs8._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0_ow0x1._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0t373jc._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_12guzbo._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0jns2ew._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0aw_rgu._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0ld4qfm._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_125b4co._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-ov0wxgu5b65.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/00-qnlax_4630.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/034uozc1ki09_.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/03zdsc.dicedw.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/05hmbxh7h5ct-.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/08tdws.ontiw1.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0azwigiwuhh08.css +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0b54rtt1-cxht.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0cdo38.8y_jr2.js +0 -138
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0cy.fvgx7dgqx.js +0 -4
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0fa.nak91jfo-.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0fv6q06wgazh_.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0g9y74cipd10n.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ga6neugwmh.1.js +0 -5
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0hkir82jccgck.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0k-x6_7dhqb~c.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0n42fh.zwyk35.js +0 -138
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0q6lk_p74rti7.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u39cc6mmeqb3.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0uay29z9qqouw.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v0e.nl_9fjba.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0wd0_x8u.jzur.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0wf-nssu2qd_2.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x7pw1zo7nxno.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0zbi5n76awxz1.js +0 -1
- /package/dist/dashboard-runtime/dashboard/.next/static/{uYteIiFtKdPhUhmILps5X → doYIl-pd6Sqax3bfUgN3q}/_buildManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{uYteIiFtKdPhUhmILps5X → doYIl-pd6Sqax3bfUgN3q}/_clientMiddlewareManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{uYteIiFtKdPhUhmILps5X → doYIl-pd6Sqax3bfUgN3q}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,84017,e=>{"use strict";var t=e.i(17635);e.s(["usePrevious",0,function(e){let r=t.useRef({value:e,previous:e});return t.useMemo(()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous),[e])}])},90055,e=>{"use strict";let t=(0,e.i(86620).default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);e.s(["ChevronUp",0,t],90055)},20268,e=>{"use strict";let t=(0,e.i(86620).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],20268)},66473,27069,e=>{"use strict";var t=e.i(44501),r=e.i(17635),o=e.i(80560);function n(e,[t,r]){return Math.min(r,Math.max(t,e))}e.s(["clamp",0,n],27069);var l=e.i(91967),a=e.i(41986),i=e.i(67928),s=e.i(43250),d=e.i(25486),c=e.i(48989),u=e.i(39340),p=e.i(45424),f=e.i(33616),m=e.i(38154),h=e.i(32374),v=e.i(80939),x=e.i(52053),y=e.i(36131),w=e.i(17256),g=e.i(72687),b=e.i(84017),S=e.i(47791),C=e.i(73772),j=e.i(6500),R=[" ","Enter","ArrowUp","ArrowDown"],E=[" ","Enter"],N="Select",[P,T,k]=(0,a.createCollection)(N),[I,D]=(0,s.createContextScope)(N,[k,m.createPopperScope]),H=(0,m.createPopperScope)(),[L,M]=I(N),[A,_]=I(N),B=e=>{let{__scopeSelect:o,children:n,open:l,defaultOpen:a,onOpenChange:i,value:s,defaultValue:c,onValueChange:u,dir:p,name:h,autoComplete:v,disabled:x,required:y,form:g}=e,b=H(o),[S,C]=r.useState(null),[j,R]=r.useState(null),[E,T]=r.useState(!1),k=(0,d.useDirection)(p),[I,D]=(0,w.useControllableState)({prop:l,defaultProp:a??!1,onChange:i,caller:N}),[M,_]=(0,w.useControllableState)({prop:s,defaultProp:c,onChange:u,caller:N}),B=r.useRef(null),V=!S||g||!!S.closest("form"),[K,O]=r.useState(new Set),F=Array.from(K).map(e=>e.props.value).join(";");return(0,t.jsx)(m.Root,{...b,children:(0,t.jsxs)(L,{required:y,scope:o,trigger:S,onTriggerChange:C,valueNode:j,onValueNodeChange:R,valueNodeHasChildren:E,onValueNodeHasChildrenChange:T,contentId:(0,f.useId)(),value:M,onValueChange:_,open:I,onOpenChange:D,dir:k,triggerPointerDownPosRef:B,disabled:x,children:[(0,t.jsx)(P.Provider,{scope:o,children:(0,t.jsx)(A,{scope:e.__scopeSelect,onNativeOptionAdd:r.useCallback(e=>{O(t=>new Set(t).add(e))},[]),onNativeOptionRemove:r.useCallback(e=>{O(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:n})}),V?(0,t.jsxs)(eC,{"aria-hidden":!0,required:y,tabIndex:-1,name:h,autoComplete:v,value:M,onChange:e=>_(e.target.value),disabled:x,form:g,children:[void 0===M?(0,t.jsx)("option",{value:""}):null,Array.from(K)]},F):null]})})};B.displayName=N;var V="SelectTrigger",K=r.forwardRef((e,o)=>{let{__scopeSelect:n,disabled:a=!1,...s}=e,d=H(n),c=M(V,n),u=c.disabled||a,p=(0,i.useComposedRefs)(o,c.onTriggerChange),f=T(n),h=r.useRef("touch"),[x,y,w]=eR(e=>{let t=f().filter(e=>!e.disabled),r=t.find(e=>e.value===c.value),o=eE(t,e,r);void 0!==o&&c.onValueChange(o.value)}),g=e=>{u||(c.onOpenChange(!0),w()),e&&(c.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,t.jsx)(m.Anchor,{asChild:!0,...d,children:(0,t.jsx)(v.Primitive.button,{type:"button",role:"combobox","aria-controls":c.contentId,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":"none",dir:c.dir,"data-state":c.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":ej(c.value)?"":void 0,...s,ref:p,onClick:(0,l.composeEventHandlers)(s.onClick,e=>{e.currentTarget.focus(),"mouse"!==h.current&&g(e)}),onPointerDown:(0,l.composeEventHandlers)(s.onPointerDown,e=>{h.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(g(e),e.preventDefault())}),onKeyDown:(0,l.composeEventHandlers)(s.onKeyDown,e=>{let t=""!==x.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||y(e.key),(!t||" "!==e.key)&&R.includes(e.key)&&(g(),e.preventDefault())})})})});K.displayName=V;var O="SelectValue",F=r.forwardRef((e,r)=>{let{__scopeSelect:o,className:n,style:l,children:a,placeholder:s="",...d}=e,c=M(O,o),{onValueNodeHasChildrenChange:u}=c,p=void 0!==a,f=(0,i.useComposedRefs)(r,c.onValueNodeChange);return(0,g.useLayoutEffect)(()=>{u(p)},[u,p]),(0,t.jsx)(v.Primitive.span,{...d,ref:f,style:{pointerEvents:"none"},children:ej(c.value)?(0,t.jsx)(t.Fragment,{children:s}):a})});F.displayName=O;var U=r.forwardRef((e,r)=>{let{__scopeSelect:o,children:n,...l}=e;return(0,t.jsx)(v.Primitive.span,{"aria-hidden":!0,...l,ref:r,children:n||"▼"})});U.displayName="SelectIcon";var z=e=>(0,t.jsx)(h.Portal,{asChild:!0,...e});z.displayName="SelectPortal";var W="SelectContent",q=r.forwardRef((e,n)=>{let l=M(W,e.__scopeSelect),[a,i]=r.useState();return((0,g.useLayoutEffect)(()=>{i(new DocumentFragment)},[]),l.open)?(0,t.jsx)(Z,{...e,ref:n}):a?o.createPortal((0,t.jsx)(Y,{scope:e.__scopeSelect,children:(0,t.jsx)(P.Slot,{scope:e.__scopeSelect,children:(0,t.jsx)("div",{children:e.children})})}),a):null});q.displayName=W;var[Y,G]=I(W),X=(0,x.createSlot)("SelectContent.RemoveScroll"),Z=r.forwardRef((e,o)=>{let{__scopeSelect:n,position:a="item-aligned",onCloseAutoFocus:s,onEscapeKeyDown:d,onPointerDownOutside:f,side:m,sideOffset:h,align:v,alignOffset:x,arrowPadding:y,collisionBoundary:w,collisionPadding:g,sticky:b,hideWhenDetached:S,avoidCollisions:R,...E}=e,N=M(W,n),[P,k]=r.useState(null),[I,D]=r.useState(null),H=(0,i.useComposedRefs)(o,e=>k(e)),[L,A]=r.useState(null),[_,B]=r.useState(null),V=T(n),[K,O]=r.useState(!1),F=r.useRef(!1);r.useEffect(()=>{if(P)return(0,C.hideOthers)(P)},[P]),(0,u.useFocusGuards)();let U=r.useCallback(e=>{let[t,...r]=V().map(e=>e.ref.current),[o]=r.slice(-1),n=document.activeElement;for(let r of e)if(r===n||(r?.scrollIntoView({block:"nearest"}),r===t&&I&&(I.scrollTop=0),r===o&&I&&(I.scrollTop=I.scrollHeight),r?.focus(),document.activeElement!==n))return},[V,I]),z=r.useCallback(()=>U([L,P]),[U,L,P]);r.useEffect(()=>{K&&z()},[K,z]);let{onOpenChange:q,triggerPointerDownPosRef:G}=N;r.useEffect(()=>{if(P){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(G.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(G.current?.y??0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():P.contains(r.target)||q(!1),document.removeEventListener("pointermove",t),G.current=null};return null!==G.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[P,q,G]),r.useEffect(()=>{let e=()=>q(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[q]);let[Z,$]=eR(e=>{let t=V().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),o=eE(t,e,r);o&&setTimeout(()=>o.ref.current.focus())}),ee=r.useCallback((e,t,r)=>{let o=!F.current&&!r;(void 0!==N.value&&N.value===t||o)&&(A(e),o&&(F.current=!0))},[N.value]),et=r.useCallback(()=>P?.focus(),[P]),er=r.useCallback((e,t,r)=>{let o=!F.current&&!r;(void 0!==N.value&&N.value===t||o)&&B(e)},[N.value]),eo="popper"===a?Q:J,en=eo===Q?{side:m,sideOffset:h,align:v,alignOffset:x,arrowPadding:y,collisionBoundary:w,collisionPadding:g,sticky:b,hideWhenDetached:S,avoidCollisions:R}:{};return(0,t.jsx)(Y,{scope:n,content:P,viewport:I,onViewportChange:D,itemRefCallback:ee,selectedItem:L,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:z,selectedItemText:_,position:a,isPositioned:K,searchRef:Z,children:(0,t.jsx)(j.RemoveScroll,{as:X,allowPinchZoom:!0,children:(0,t.jsx)(p.FocusScope,{asChild:!0,trapped:N.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,l.composeEventHandlers)(s,e=>{N.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,t.jsx)(c.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:d,onPointerDownOutside:f,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>N.onOpenChange(!1),children:(0,t.jsx)(eo,{role:"listbox",id:N.contentId,"data-state":N.open?"open":"closed",dir:N.dir,onContextMenu:e=>e.preventDefault(),...E,...en,onPlaced:()=>O(!0),ref:H,style:{display:"flex",flexDirection:"column",outline:"none",...E.style},onKeyDown:(0,l.composeEventHandlers)(E.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||$(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=V().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,o=t.indexOf(r);t=t.slice(o+1)}setTimeout(()=>U(t)),e.preventDefault()}})})})})})})});Z.displayName="SelectContentImpl";var J=r.forwardRef((e,o)=>{let{__scopeSelect:l,onPlaced:a,...s}=e,d=M(W,l),c=G(W,l),[u,p]=r.useState(null),[f,m]=r.useState(null),h=(0,i.useComposedRefs)(o,e=>m(e)),x=T(l),y=r.useRef(!1),w=r.useRef(!0),{viewport:b,selectedItem:S,selectedItemText:C,focusSelectedItem:j}=c,R=r.useCallback(()=>{if(d.trigger&&d.valueNode&&u&&f&&b&&S&&C){let e=d.trigger.getBoundingClientRect(),t=f.getBoundingClientRect(),r=d.valueNode.getBoundingClientRect(),o=C.getBoundingClientRect();if("rtl"!==d.dir){let l=o.left-t.left,a=r.left-l,i=e.left-a,s=e.width+i,d=Math.max(s,t.width),c=n(a,[10,Math.max(10,window.innerWidth-10-d)]);u.style.minWidth=s+"px",u.style.left=c+"px"}else{let l=t.right-o.right,a=window.innerWidth-r.right-l,i=window.innerWidth-e.right-a,s=e.width+i,d=Math.max(s,t.width),c=n(a,[10,Math.max(10,window.innerWidth-10-d)]);u.style.minWidth=s+"px",u.style.right=c+"px"}let l=x(),i=window.innerHeight-20,s=b.scrollHeight,c=window.getComputedStyle(f),p=parseInt(c.borderTopWidth,10),m=parseInt(c.paddingTop,10),h=parseInt(c.borderBottomWidth,10),v=p+m+s+parseInt(c.paddingBottom,10)+h,w=Math.min(5*S.offsetHeight,v),g=window.getComputedStyle(b),j=parseInt(g.paddingTop,10),R=parseInt(g.paddingBottom,10),E=e.top+e.height/2-10,N=S.offsetHeight/2,P=p+m+(S.offsetTop+N);if(P<=E){let e=l.length>0&&S===l[l.length-1].ref.current;u.style.bottom="0px";let t=Math.max(i-E,N+(e?R:0)+(f.clientHeight-b.offsetTop-b.offsetHeight)+h);u.style.height=P+t+"px"}else{let e=l.length>0&&S===l[0].ref.current;u.style.top="0px";let t=Math.max(E,p+b.offsetTop+(e?j:0)+N);u.style.height=t+(v-P)+"px",b.scrollTop=P-E+b.offsetTop}u.style.margin="10px 0",u.style.minHeight=w+"px",u.style.maxHeight=i+"px",a?.(),requestAnimationFrame(()=>y.current=!0)}},[x,d.trigger,d.valueNode,u,f,b,S,C,d.dir,a]);(0,g.useLayoutEffect)(()=>R(),[R]);let[E,N]=r.useState();(0,g.useLayoutEffect)(()=>{f&&N(window.getComputedStyle(f).zIndex)},[f]);let P=r.useCallback(e=>{e&&!0===w.current&&(R(),j?.(),w.current=!1)},[R,j]);return(0,t.jsx)($,{scope:l,contentWrapper:u,shouldExpandOnScrollRef:y,onScrollButtonChange:P,children:(0,t.jsx)("div",{ref:p,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:E},children:(0,t.jsx)(v.Primitive.div,{...s,ref:h,style:{boxSizing:"border-box",maxHeight:"100%",...s.style}})})})});J.displayName="SelectItemAlignedPosition";var Q=r.forwardRef((e,r)=>{let{__scopeSelect:o,align:n="start",collisionPadding:l=10,...a}=e,i=H(o);return(0,t.jsx)(m.Content,{...i,...a,ref:r,align:n,collisionPadding:l,style:{boxSizing:"border-box",...a.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});Q.displayName="SelectPopperPosition";var[$,ee]=I(W,{}),et="SelectViewport",er=r.forwardRef((e,o)=>{let{__scopeSelect:n,nonce:a,...s}=e,d=G(et,n),c=ee(et,n),u=(0,i.useComposedRefs)(o,d.onViewportChange),p=r.useRef(0);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),(0,t.jsx)(P.Slot,{scope:n,children:(0,t.jsx)(v.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...s,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...s.style},onScroll:(0,l.composeEventHandlers)(s.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:o}=c;if(o?.current&&r){let e=Math.abs(p.current-t.scrollTop);if(e>0){let o=window.innerHeight-20,n=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(n<o){let l=n+e,a=Math.min(o,l),i=l-a;r.style.height=a+"px","0px"===r.style.bottom&&(t.scrollTop=i>0?i:0,r.style.justifyContent="flex-end")}}}p.current=t.scrollTop})})})]})});er.displayName=et;var eo="SelectGroup",[en,el]=I(eo);r.forwardRef((e,r)=>{let{__scopeSelect:o,...n}=e,l=(0,f.useId)();return(0,t.jsx)(en,{scope:o,id:l,children:(0,t.jsx)(v.Primitive.div,{role:"group","aria-labelledby":l,...n,ref:r})})}).displayName=eo;var ea="SelectLabel",ei=r.forwardRef((e,r)=>{let{__scopeSelect:o,...n}=e,l=el(ea,o);return(0,t.jsx)(v.Primitive.div,{id:l.id,...n,ref:r})});ei.displayName=ea;var es="SelectItem",[ed,ec]=I(es),eu=r.forwardRef((e,o)=>{let{__scopeSelect:n,value:a,disabled:s=!1,textValue:d,...c}=e,u=M(es,n),p=G(es,n),m=u.value===a,[h,x]=r.useState(d??""),[y,w]=r.useState(!1),g=(0,i.useComposedRefs)(o,e=>p.itemRefCallback?.(e,a,s)),b=(0,f.useId)(),S=r.useRef("touch"),C=()=>{s||(u.onValueChange(a),u.onOpenChange(!1))};if(""===a)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,t.jsx)(ed,{scope:n,value:a,disabled:s,textId:b,isSelected:m,onItemTextChange:r.useCallback(e=>{x(t=>t||(e?.textContent??"").trim())},[]),children:(0,t.jsx)(P.ItemSlot,{scope:n,value:a,disabled:s,textValue:h,children:(0,t.jsx)(v.Primitive.div,{role:"option","aria-labelledby":b,"data-highlighted":y?"":void 0,"aria-selected":m&&y,"data-state":m?"checked":"unchecked","aria-disabled":s||void 0,"data-disabled":s?"":void 0,tabIndex:s?void 0:-1,...c,ref:g,onFocus:(0,l.composeEventHandlers)(c.onFocus,()=>w(!0)),onBlur:(0,l.composeEventHandlers)(c.onBlur,()=>w(!1)),onClick:(0,l.composeEventHandlers)(c.onClick,()=>{"mouse"!==S.current&&C()}),onPointerUp:(0,l.composeEventHandlers)(c.onPointerUp,()=>{"mouse"===S.current&&C()}),onPointerDown:(0,l.composeEventHandlers)(c.onPointerDown,e=>{S.current=e.pointerType}),onPointerMove:(0,l.composeEventHandlers)(c.onPointerMove,e=>{S.current=e.pointerType,s?p.onItemLeave?.():"mouse"===S.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,l.composeEventHandlers)(c.onPointerLeave,e=>{e.currentTarget===document.activeElement&&p.onItemLeave?.()}),onKeyDown:(0,l.composeEventHandlers)(c.onKeyDown,e=>{(p.searchRef?.current===""||" "!==e.key)&&(E.includes(e.key)&&C()," "===e.key&&e.preventDefault())})})})})});eu.displayName=es;var ep="SelectItemText",ef=r.forwardRef((e,n)=>{let{__scopeSelect:l,className:a,style:s,...d}=e,c=M(ep,l),u=G(ep,l),p=ec(ep,l),f=_(ep,l),[m,h]=r.useState(null),x=(0,i.useComposedRefs)(n,e=>h(e),p.onItemTextChange,e=>u.itemTextRefCallback?.(e,p.value,p.disabled)),y=m?.textContent,w=r.useMemo(()=>(0,t.jsx)("option",{value:p.value,disabled:p.disabled,children:y},p.value),[p.disabled,p.value,y]),{onNativeOptionAdd:b,onNativeOptionRemove:S}=f;return(0,g.useLayoutEffect)(()=>(b(w),()=>S(w)),[b,S,w]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(v.Primitive.span,{id:p.textId,...d,ref:x}),p.isSelected&&c.valueNode&&!c.valueNodeHasChildren?o.createPortal(d.children,c.valueNode):null]})});ef.displayName=ep;var em="SelectItemIndicator",eh=r.forwardRef((e,r)=>{let{__scopeSelect:o,...n}=e;return ec(em,o).isSelected?(0,t.jsx)(v.Primitive.span,{"aria-hidden":!0,...n,ref:r}):null});eh.displayName=em;var ev="SelectScrollUpButton",ex=r.forwardRef((e,o)=>{let n=G(ev,e.__scopeSelect),l=ee(ev,e.__scopeSelect),[a,s]=r.useState(!1),d=(0,i.useComposedRefs)(o,l.onScrollButtonChange);return(0,g.useLayoutEffect)(()=>{if(n.viewport&&n.isPositioned){let e=function(){s(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[n.viewport,n.isPositioned]),a?(0,t.jsx)(eg,{...e,ref:d,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});ex.displayName=ev;var ey="SelectScrollDownButton",ew=r.forwardRef((e,o)=>{let n=G(ey,e.__scopeSelect),l=ee(ey,e.__scopeSelect),[a,s]=r.useState(!1),d=(0,i.useComposedRefs)(o,l.onScrollButtonChange);return(0,g.useLayoutEffect)(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;s(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[n.viewport,n.isPositioned]),a?(0,t.jsx)(eg,{...e,ref:d,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});ew.displayName=ey;var eg=r.forwardRef((e,o)=>{let{__scopeSelect:n,onAutoScroll:a,...i}=e,s=G("SelectScrollButton",n),d=r.useRef(null),c=T(n),u=r.useCallback(()=>{null!==d.current&&(window.clearInterval(d.current),d.current=null)},[]);return r.useEffect(()=>()=>u(),[u]),(0,g.useLayoutEffect)(()=>{let e=c().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[c]),(0,t.jsx)(v.Primitive.div,{"aria-hidden":!0,...i,ref:o,style:{flexShrink:0,...i.style},onPointerDown:(0,l.composeEventHandlers)(i.onPointerDown,()=>{null===d.current&&(d.current=window.setInterval(a,50))}),onPointerMove:(0,l.composeEventHandlers)(i.onPointerMove,()=>{s.onItemLeave?.(),null===d.current&&(d.current=window.setInterval(a,50))}),onPointerLeave:(0,l.composeEventHandlers)(i.onPointerLeave,()=>{u()})})}),eb=r.forwardRef((e,r)=>{let{__scopeSelect:o,...n}=e;return(0,t.jsx)(v.Primitive.div,{"aria-hidden":!0,...n,ref:r})});eb.displayName="SelectSeparator";var eS="SelectArrow";r.forwardRef((e,r)=>{let{__scopeSelect:o,...n}=e,l=H(o),a=M(eS,o),i=G(eS,o);return a.open&&"popper"===i.position?(0,t.jsx)(m.Arrow,{...l,...n,ref:r}):null}).displayName=eS;var eC=r.forwardRef(({__scopeSelect:e,value:o,...n},l)=>{let a=r.useRef(null),s=(0,i.useComposedRefs)(l,a),d=(0,b.usePrevious)(o);return r.useEffect(()=>{let e=a.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(d!==o&&t){let r=new Event("change",{bubbles:!0});t.call(e,o),e.dispatchEvent(r)}},[d,o]),(0,t.jsx)(v.Primitive.select,{...n,style:{...S.VISUALLY_HIDDEN_STYLES,...n.style},ref:s,defaultValue:o})});function ej(e){return""===e||void 0===e}function eR(e){let t=(0,y.useCallbackRef)(e),o=r.useRef(""),n=r.useRef(0),l=r.useCallback(e=>{let r=o.current+e;t(r),function e(t){o.current=t,window.clearTimeout(n.current),""!==t&&(n.current=window.setTimeout(()=>e(""),1e3))}(r)},[t]),a=r.useCallback(()=>{o.current="",window.clearTimeout(n.current)},[]);return r.useEffect(()=>()=>window.clearTimeout(n.current),[]),[o,l,a]}function eE(e,t,r){var o,n;let l=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,a=r?e.indexOf(r):-1,i=(o=e,n=Math.max(a,0),o.map((e,t)=>o[(n+t)%o.length]));1===l.length&&(i=i.filter(e=>e!==r));let s=i.find(e=>e.textValue.toLowerCase().startsWith(l.toLowerCase()));return s!==r?s:void 0}eC.displayName="SelectBubbleInput";var eN=e.i(6703),eP=e.i(20268),eT=e.i(90055),ek=e.i(76490);let eI=r.forwardRef(({className:e,children:r,...o},n)=>(0,t.jsxs)(K,{ref:n,className:(0,ek.cn)("flex h-8 w-full items-center justify-between whitespace-nowrap rounded-md border border-[hsl(var(--border))] px-3 py-1 text-sm transition-colors data-[placeholder]:text-[hsl(var(--subtle))] focus:outline-none focus:border-[hsl(var(--primary))] focus:ring-2 focus:ring-[hsl(var(--primary)/0.2)] disabled:cursor-not-allowed disabled:bg-[hsl(var(--secondary))] disabled:text-[hsl(var(--muted-foreground))] [&>span]:line-clamp-1","bg-[hsl(var(--card))]",e),...o,children:[r,(0,t.jsx)(U,{asChild:!0,children:(0,t.jsx)(eP.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));eI.displayName=K.displayName;let eD=r.forwardRef(({className:e,...r},o)=>(0,t.jsx)(ex,{ref:o,className:(0,ek.cn)("flex cursor-default items-center justify-center py-1",e),...r,children:(0,t.jsx)(eT.ChevronUp,{className:"h-4 w-4"})}));eD.displayName=ex.displayName;let eH=r.forwardRef(({className:e,...r},o)=>(0,t.jsx)(ew,{ref:o,className:(0,ek.cn)("flex cursor-default items-center justify-center py-1",e),...r,children:(0,t.jsx)(eP.ChevronDown,{className:"h-4 w-4"})}));eH.displayName=ew.displayName;let eL=r.forwardRef(({className:e,children:r,position:o="popper",...n},l)=>(0,t.jsx)(z,{children:(0,t.jsxs)(q,{ref:l,className:(0,ek.cn)("relative z-50 max-h-72 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border border-[hsl(var(--border))] 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-select-content-transform-origin]","bg-[hsl(var(--popover))] text-[hsl(var(--popover-foreground))]","popper"===o&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:o,...n,children:[(0,t.jsx)(eD,{}),(0,t.jsx)(er,{className:(0,ek.cn)("p-1","popper"===o&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:r}),(0,t.jsx)(eH,{})]})}));eL.displayName=q.displayName,r.forwardRef(({className:e,...r},o)=>(0,t.jsx)(ei,{ref:o,className:(0,ek.cn)("px-2 py-1.5 text-sm font-semibold",e),...r})).displayName=ei.displayName;let eM=r.forwardRef(({className:e,children:r,...o},n)=>(0,t.jsxs)(eu,{ref:n,className:(0,ek.cn)("relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50","hover:bg-[hsl(var(--primary-soft))] hover:text-[hsl(var(--primary))] focus:bg-[hsl(var(--primary-soft))] focus:text-[hsl(var(--primary))]","data-[state=checked]:bg-[hsl(var(--primary-soft))] data-[state=checked]:text-[hsl(var(--primary))]",e),...o,children:[(0,t.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,t.jsx)(eh,{children:(0,t.jsx)(eN.Check,{className:"h-4 w-4"})})}),(0,t.jsx)(ef,{children:r})]}));eM.displayName=eu.displayName,r.forwardRef(({className:e,...r},o)=>(0,t.jsx)(eb,{ref:o,className:(0,ek.cn)("-mx-1 my-1 h-px bg-muted",e),...r})).displayName=eb.displayName,e.s(["Select",0,B,"SelectContent",0,eL,"SelectItem",0,eM,"SelectTrigger",0,eI,"SelectValue",0,F],66473)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,66476,50110,e=>{"use strict";var t=e.i(44501),r=e.i(17635);e.i(80560);var o=e.i(6102),n=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,n)=>{let l=(0,o.createSlot)(`Primitive.${n}`),a=r.forwardRef((e,r)=>{let{asChild:o,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,t.jsx)(o?l:n,{...a,ref:r})});return a.displayName=`Primitive.${n}`,{...e,[n]:a}},{});e.s(["Primitive",0,n],50110);var l=r.forwardRef((e,r)=>(0,t.jsx)(n.label,{...e,ref:r,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));l.displayName="Label";var a=e.i(94237),i=e.i(76490);let s=(0,a.cva)("text-sm font-medium leading-none text-[hsl(var(--foreground))] peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=r.forwardRef(({className:e,...r},o)=>(0,t.jsx)(l,{ref:o,className:(0,i.cn)(s(),e),...r}));d.displayName=l.displayName,e.s(["Label",0,d],66476)},7284,e=>{"use strict";e.s(["clsx",0,function(){for(var e,t,r=0,o="",n=arguments.length;r<n;r++)(e=arguments[r])&&(t=function e(t){var r,o,n="";if("string"==typeof t||"number"==typeof t)n+=t;else if("object"==typeof t)if(Array.isArray(t)){var l=t.length;for(r=0;r<l;r++)t[r]&&(o=e(t[r]))&&(n&&(n+=" "),n+=o)}else for(o in t)t[o]&&(n&&(n+=" "),n+=o);return n}(e))&&(o&&(o+=" "),o+=t);return o}])},76490,e=>{"use strict";var t=e.i(7284),r=e.i(77130);e.s(["cn",0,function(...e){return(0,r.twMerge)((0,t.clsx)(e))},"extractFileName",0,function(e){let t=e.split("/");return t[t.length-1]||e}])},67928,e=>{"use strict";var t=e.i(17635);function r(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function o(...e){return t=>{let o=!1,n=e.map(e=>{let n=r(e,t);return o||"function"!=typeof n||(o=!0),n});if(o)return()=>{for(let t=0;t<n.length;t++){let o=n[t];"function"==typeof o?o():r(e[t],null)}}}}e.s(["composeRefs",0,o,"useComposedRefs",0,function(...e){return t.useCallback(o(...e),e)}])},6102,e=>{"use strict";var t=e.i(17635),r=e.i(67928),o=e.i(44501),n=Symbol.for("react.lazy"),l=t[" use ".trim().toString()];function a(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===n&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}function i(e){var n;let i,s=(n=e,(i=t.forwardRef((e,o)=>{let{children:n,...i}=e;if(a(n)&&"function"==typeof l&&(n=l(n._payload)),t.isValidElement(n)){var s;let e,l,a=(s=n,(l=(e=Object.getOwnPropertyDescriptor(s.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.ref:(l=(e=Object.getOwnPropertyDescriptor(s,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.props.ref:s.props.ref||s.ref),d=function(e,t){let r={...t};for(let o in t){let n=e[o],l=t[o];/^on[A-Z]/.test(o)?n&&l?r[o]=(...e)=>{let t=l(...e);return n(...e),t}:n&&(r[o]=n):"style"===o?r[o]={...n,...l}:"className"===o&&(r[o]=[n,l].filter(Boolean).join(" "))}return{...e,...r}}(i,n.props);return n.type!==t.Fragment&&(d.ref=o?(0,r.composeRefs)(o,a):a),t.cloneElement(n,d)}return t.Children.count(n)>1?t.Children.only(null):null})).displayName=`${n}.SlotClone`,i),d=t.forwardRef((e,r)=>{let{children:n,...i}=e;a(n)&&"function"==typeof l&&(n=l(n._payload));let d=t.Children.toArray(n),u=d.find(c);if(u){let e=u.props.children,n=d.map(r=>r!==u?r:t.Children.count(e)>1?t.Children.only(null):t.isValidElement(e)?e.props.children:null);return(0,o.jsx)(s,{...i,ref:r,children:t.isValidElement(e)?t.cloneElement(e,void 0,n):null})}return(0,o.jsx)(s,{...i,ref:r,children:n})});return d.displayName=`${e}.Slot`,d}var s=i("Slot"),d=Symbol("radix.slottable");function c(e){return t.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===d}e.s(["Slot",0,s,"createSlot",0,i])},94237,e=>{"use strict";var t=e.i(7284);let r=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,o=t.clsx;e.s(["cva",0,(e,t)=>n=>{var l;if((null==t?void 0:t.variants)==null)return o(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:a,defaultVariants:i}=t,s=Object.keys(a).map(e=>{let t=null==n?void 0:n[e],o=null==i?void 0:i[e];if(null===t)return null;let l=r(t)||r(o);return a[e][l]}),d=n&&Object.entries(n).reduce((e,t)=>{let[r,o]=t;return void 0===o||(e[r]=o),e},{});return o(e,s,null==t||null==(l=t.compoundVariants)?void 0:l.reduce((e,t)=>{let{class:r,className:o,...n}=t;return Object.entries(n).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...i,...d}[t]):({...i,...d})[t]===r})?[...e,r,o]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}])},42595,e=>{"use strict";var t=e.i(44501),r=e.i(17635),o=e.i(6102),n=e.i(94237),l=e.i(76490);let a=(0,n.cva)("inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--primary)/0.3)] focus-visible:ring-offset-1 focus-visible:ring-offset-[hsl(var(--background))] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] shadow-sm hover:opacity-90",destructive:"bg-[hsl(var(--destructive))] text-[hsl(var(--destructive-foreground))] shadow-sm hover:opacity-90",outline:"border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--foreground))] shadow-sm hover:border-[hsl(var(--primary))] hover:text-[hsl(var(--primary))]",secondary:"bg-[hsl(var(--secondary))] text-[hsl(var(--secondary-foreground))] shadow-sm hover:opacity-80",ghost:"hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]",link:"text-[hsl(var(--primary))] underline-offset-4 hover:underline"},size:{default:"h-8 px-3 py-1",sm:"h-7 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-4",icon:"h-8 w-8"}},defaultVariants:{variant:"default",size:"default"}}),i=r.forwardRef(({className:e,variant:r,size:n,asChild:i=!1,...s},d)=>{let c=i?o.Slot:"button";return(0,t.jsx)(c,{className:(0,l.cn)(a({variant:r,size:n,className:e})),ref:d,...s})});i.displayName="Button",e.s(["Button",0,i])},86620,e=>{"use strict";var t=e.i(17635);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),o=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let l=(0,t.createContext)({}),a=(0,t.forwardRef)(({color:e,size:o,strokeWidth:a,absoluteStrokeWidth:i,className:s="",children:d,iconNode:c,...u},p)=>{let{size:f=24,strokeWidth:v=2,absoluteStrokeWidth:m=!1,color:h="currentColor",className:y=""}=(0,t.useContext)(l)??{},g=i??m?24*Number(a??v)/Number(o??f):a??v;return(0,t.createElement)("svg",{ref:p,...n,width:o??f??n.width,height:o??f??n.height,stroke:e??h,strokeWidth:g,className:r("lucide",y,s),...!d&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(u)&&{"aria-hidden":"true"},...u},[...c.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(d)?d:[d]])});e.s(["default",0,(e,n)=>{let l=(0,t.forwardRef)(({className:l,...i},s)=>(0,t.createElement)(a,{ref:s,iconNode:n,className:r(`lucide-${o(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,l),...i}));return l.displayName=o(e),l}],86620)},23888,e=>{"use strict";var t=e.i(44501),r=e.i(17635),o=e.i(76490);let n=r.forwardRef(({className:e,type:r,...n},l)=>(0,t.jsx)("input",{type:r,className:(0,o.cn)("flex h-8 w-full rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] px-3 py-1 text-sm transition-colors","file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground","placeholder:text-[hsl(var(--subtle))]","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","disabled:cursor-not-allowed disabled:bg-[hsl(var(--secondary))] disabled:text-[hsl(var(--muted-foreground))]",e),ref:l,...n}));n.displayName="Input",e.s(["Input",0,n])},47791,e=>{"use strict";var t=e.i(17635),r=e.i(80939),o=e.i(44501),n=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),l=t.forwardRef((e,t)=>(0,o.jsx)(r.Primitive.span,{...e,ref:t,style:{...n,...e.style}}));l.displayName="VisuallyHidden",e.s(["Root",0,l,"VISUALLY_HIDDEN_STYLES",0,n])},20268,e=>{"use strict";let t=(0,e.i(86620).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],20268)},84017,e=>{"use strict";var t=e.i(17635);e.s(["usePrevious",0,function(e){let r=t.useRef({value:e,previous:e});return t.useMemo(()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous),[e])}])},90055,e=>{"use strict";let t=(0,e.i(86620).default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);e.s(["ChevronUp",0,t],90055)},66473,27069,e=>{"use strict";var t=e.i(44501),r=e.i(17635),o=e.i(80560);function n(e,[t,r]){return Math.min(r,Math.max(t,e))}e.s(["clamp",0,n],27069);var l=e.i(91967),a=e.i(41986),i=e.i(67928),s=e.i(43250),d=e.i(25486),c=e.i(48989),u=e.i(39340),p=e.i(45424),f=e.i(33616),v=e.i(38154),m=e.i(32374),h=e.i(80939),y=e.i(52053),g=e.i(36131),x=e.i(17256),w=e.i(72687),b=e.i(84017),S=e.i(47791),C=e.i(73772),j=e.i(6500),N=[" ","Enter","ArrowUp","ArrowDown"],R=[" ","Enter"],E="Select",[P,k,T]=(0,a.createCollection)(E),[I,L]=(0,s.createContextScope)(E,[T,v.createPopperScope]),D=(0,v.createPopperScope)(),[H,A]=I(E),[_,M]=I(E),V=e=>{let{__scopeSelect:o,children:n,open:l,defaultOpen:a,onOpenChange:i,value:s,defaultValue:c,onValueChange:u,dir:p,name:m,autoComplete:h,disabled:y,required:g,form:w}=e,b=D(o),[S,C]=r.useState(null),[j,N]=r.useState(null),[R,k]=r.useState(!1),T=(0,d.useDirection)(p),[I,L]=(0,x.useControllableState)({prop:l,defaultProp:a??!1,onChange:i,caller:E}),[A,M]=(0,x.useControllableState)({prop:s,defaultProp:c,onChange:u,caller:E}),V=r.useRef(null),O=!S||w||!!S.closest("form"),[B,W]=r.useState(new Set),z=Array.from(B).map(e=>e.props.value).join(";");return(0,t.jsx)(v.Root,{...b,children:(0,t.jsxs)(H,{required:g,scope:o,trigger:S,onTriggerChange:C,valueNode:j,onValueNodeChange:N,valueNodeHasChildren:R,onValueNodeHasChildrenChange:k,contentId:(0,f.useId)(),value:A,onValueChange:M,open:I,onOpenChange:L,dir:T,triggerPointerDownPosRef:V,disabled:y,children:[(0,t.jsx)(P.Provider,{scope:o,children:(0,t.jsx)(_,{scope:e.__scopeSelect,onNativeOptionAdd:r.useCallback(e=>{W(t=>new Set(t).add(e))},[]),onNativeOptionRemove:r.useCallback(e=>{W(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:n})}),O?(0,t.jsxs)(eC,{"aria-hidden":!0,required:g,tabIndex:-1,name:m,autoComplete:h,value:A,onChange:e=>M(e.target.value),disabled:y,form:w,children:[void 0===A?(0,t.jsx)("option",{value:""}):null,Array.from(B)]},z):null]})})};V.displayName=E;var O="SelectTrigger",B=r.forwardRef((e,o)=>{let{__scopeSelect:n,disabled:a=!1,...s}=e,d=D(n),c=A(O,n),u=c.disabled||a,p=(0,i.useComposedRefs)(o,c.onTriggerChange),f=k(n),m=r.useRef("touch"),[y,g,x]=eN(e=>{let t=f().filter(e=>!e.disabled),r=t.find(e=>e.value===c.value),o=eR(t,e,r);void 0!==o&&c.onValueChange(o.value)}),w=e=>{u||(c.onOpenChange(!0),x()),e&&(c.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,t.jsx)(v.Anchor,{asChild:!0,...d,children:(0,t.jsx)(h.Primitive.button,{type:"button",role:"combobox","aria-controls":c.contentId,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":"none",dir:c.dir,"data-state":c.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":ej(c.value)?"":void 0,...s,ref:p,onClick:(0,l.composeEventHandlers)(s.onClick,e=>{e.currentTarget.focus(),"mouse"!==m.current&&w(e)}),onPointerDown:(0,l.composeEventHandlers)(s.onPointerDown,e=>{m.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(w(e),e.preventDefault())}),onKeyDown:(0,l.composeEventHandlers)(s.onKeyDown,e=>{let t=""!==y.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||g(e.key),(!t||" "!==e.key)&&N.includes(e.key)&&(w(),e.preventDefault())})})})});B.displayName=O;var W="SelectValue",z=r.forwardRef((e,r)=>{let{__scopeSelect:o,className:n,style:l,children:a,placeholder:s="",...d}=e,c=A(W,o),{onValueNodeHasChildrenChange:u}=c,p=void 0!==a,f=(0,i.useComposedRefs)(r,c.onValueNodeChange);return(0,w.useLayoutEffect)(()=>{u(p)},[u,p]),(0,t.jsx)(h.Primitive.span,{...d,ref:f,style:{pointerEvents:"none"},children:ej(c.value)?(0,t.jsx)(t.Fragment,{children:s}):a})});z.displayName=W;var F=r.forwardRef((e,r)=>{let{__scopeSelect:o,children:n,...l}=e;return(0,t.jsx)(h.Primitive.span,{"aria-hidden":!0,...l,ref:r,children:n||"▼"})});F.displayName="SelectIcon";var U=e=>(0,t.jsx)(m.Portal,{asChild:!0,...e});U.displayName="SelectPortal";var K="SelectContent",$=r.forwardRef((e,n)=>{let l=A(K,e.__scopeSelect),[a,i]=r.useState();return((0,w.useLayoutEffect)(()=>{i(new DocumentFragment)},[]),l.open)?(0,t.jsx)(G,{...e,ref:n}):a?o.createPortal((0,t.jsx)(Y,{scope:e.__scopeSelect,children:(0,t.jsx)(P.Slot,{scope:e.__scopeSelect,children:(0,t.jsx)("div",{children:e.children})})}),a):null});$.displayName=K;var[Y,q]=I(K),Z=(0,y.createSlot)("SelectContent.RemoveScroll"),G=r.forwardRef((e,o)=>{let{__scopeSelect:n,position:a="item-aligned",onCloseAutoFocus:s,onEscapeKeyDown:d,onPointerDownOutside:f,side:v,sideOffset:m,align:h,alignOffset:y,arrowPadding:g,collisionBoundary:x,collisionPadding:w,sticky:b,hideWhenDetached:S,avoidCollisions:N,...R}=e,E=A(K,n),[P,T]=r.useState(null),[I,L]=r.useState(null),D=(0,i.useComposedRefs)(o,e=>T(e)),[H,_]=r.useState(null),[M,V]=r.useState(null),O=k(n),[B,W]=r.useState(!1),z=r.useRef(!1);r.useEffect(()=>{if(P)return(0,C.hideOthers)(P)},[P]),(0,u.useFocusGuards)();let F=r.useCallback(e=>{let[t,...r]=O().map(e=>e.ref.current),[o]=r.slice(-1),n=document.activeElement;for(let r of e)if(r===n||(r?.scrollIntoView({block:"nearest"}),r===t&&I&&(I.scrollTop=0),r===o&&I&&(I.scrollTop=I.scrollHeight),r?.focus(),document.activeElement!==n))return},[O,I]),U=r.useCallback(()=>F([H,P]),[F,H,P]);r.useEffect(()=>{B&&U()},[B,U]);let{onOpenChange:$,triggerPointerDownPosRef:q}=E;r.useEffect(()=>{if(P){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(q.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(q.current?.y??0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():P.contains(r.target)||$(!1),document.removeEventListener("pointermove",t),q.current=null};return null!==q.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[P,$,q]),r.useEffect(()=>{let e=()=>$(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[$]);let[G,Q]=eN(e=>{let t=O().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),o=eR(t,e,r);o&&setTimeout(()=>o.ref.current.focus())}),ee=r.useCallback((e,t,r)=>{let o=!z.current&&!r;(void 0!==E.value&&E.value===t||o)&&(_(e),o&&(z.current=!0))},[E.value]),et=r.useCallback(()=>P?.focus(),[P]),er=r.useCallback((e,t,r)=>{let o=!z.current&&!r;(void 0!==E.value&&E.value===t||o)&&V(e)},[E.value]),eo="popper"===a?J:X,en=eo===J?{side:v,sideOffset:m,align:h,alignOffset:y,arrowPadding:g,collisionBoundary:x,collisionPadding:w,sticky:b,hideWhenDetached:S,avoidCollisions:N}:{};return(0,t.jsx)(Y,{scope:n,content:P,viewport:I,onViewportChange:L,itemRefCallback:ee,selectedItem:H,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:U,selectedItemText:M,position:a,isPositioned:B,searchRef:G,children:(0,t.jsx)(j.RemoveScroll,{as:Z,allowPinchZoom:!0,children:(0,t.jsx)(p.FocusScope,{asChild:!0,trapped:E.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,l.composeEventHandlers)(s,e=>{E.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,t.jsx)(c.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:d,onPointerDownOutside:f,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>E.onOpenChange(!1),children:(0,t.jsx)(eo,{role:"listbox",id:E.contentId,"data-state":E.open?"open":"closed",dir:E.dir,onContextMenu:e=>e.preventDefault(),...R,...en,onPlaced:()=>W(!0),ref:D,style:{display:"flex",flexDirection:"column",outline:"none",...R.style},onKeyDown:(0,l.composeEventHandlers)(R.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||Q(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=O().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,o=t.indexOf(r);t=t.slice(o+1)}setTimeout(()=>F(t)),e.preventDefault()}})})})})})})});G.displayName="SelectContentImpl";var X=r.forwardRef((e,o)=>{let{__scopeSelect:l,onPlaced:a,...s}=e,d=A(K,l),c=q(K,l),[u,p]=r.useState(null),[f,v]=r.useState(null),m=(0,i.useComposedRefs)(o,e=>v(e)),y=k(l),g=r.useRef(!1),x=r.useRef(!0),{viewport:b,selectedItem:S,selectedItemText:C,focusSelectedItem:j}=c,N=r.useCallback(()=>{if(d.trigger&&d.valueNode&&u&&f&&b&&S&&C){let e=d.trigger.getBoundingClientRect(),t=f.getBoundingClientRect(),r=d.valueNode.getBoundingClientRect(),o=C.getBoundingClientRect();if("rtl"!==d.dir){let l=o.left-t.left,a=r.left-l,i=e.left-a,s=e.width+i,d=Math.max(s,t.width),c=n(a,[10,Math.max(10,window.innerWidth-10-d)]);u.style.minWidth=s+"px",u.style.left=c+"px"}else{let l=t.right-o.right,a=window.innerWidth-r.right-l,i=window.innerWidth-e.right-a,s=e.width+i,d=Math.max(s,t.width),c=n(a,[10,Math.max(10,window.innerWidth-10-d)]);u.style.minWidth=s+"px",u.style.right=c+"px"}let l=y(),i=window.innerHeight-20,s=b.scrollHeight,c=window.getComputedStyle(f),p=parseInt(c.borderTopWidth,10),v=parseInt(c.paddingTop,10),m=parseInt(c.borderBottomWidth,10),h=p+v+s+parseInt(c.paddingBottom,10)+m,x=Math.min(5*S.offsetHeight,h),w=window.getComputedStyle(b),j=parseInt(w.paddingTop,10),N=parseInt(w.paddingBottom,10),R=e.top+e.height/2-10,E=S.offsetHeight/2,P=p+v+(S.offsetTop+E);if(P<=R){let e=l.length>0&&S===l[l.length-1].ref.current;u.style.bottom="0px";let t=Math.max(i-R,E+(e?N:0)+(f.clientHeight-b.offsetTop-b.offsetHeight)+m);u.style.height=P+t+"px"}else{let e=l.length>0&&S===l[0].ref.current;u.style.top="0px";let t=Math.max(R,p+b.offsetTop+(e?j:0)+E);u.style.height=t+(h-P)+"px",b.scrollTop=P-R+b.offsetTop}u.style.margin="10px 0",u.style.minHeight=x+"px",u.style.maxHeight=i+"px",a?.(),requestAnimationFrame(()=>g.current=!0)}},[y,d.trigger,d.valueNode,u,f,b,S,C,d.dir,a]);(0,w.useLayoutEffect)(()=>N(),[N]);let[R,E]=r.useState();(0,w.useLayoutEffect)(()=>{f&&E(window.getComputedStyle(f).zIndex)},[f]);let P=r.useCallback(e=>{e&&!0===x.current&&(N(),j?.(),x.current=!1)},[N,j]);return(0,t.jsx)(Q,{scope:l,contentWrapper:u,shouldExpandOnScrollRef:g,onScrollButtonChange:P,children:(0,t.jsx)("div",{ref:p,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:R},children:(0,t.jsx)(h.Primitive.div,{...s,ref:m,style:{boxSizing:"border-box",maxHeight:"100%",...s.style}})})})});X.displayName="SelectItemAlignedPosition";var J=r.forwardRef((e,r)=>{let{__scopeSelect:o,align:n="start",collisionPadding:l=10,...a}=e,i=D(o);return(0,t.jsx)(v.Content,{...i,...a,ref:r,align:n,collisionPadding:l,style:{boxSizing:"border-box",...a.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});J.displayName="SelectPopperPosition";var[Q,ee]=I(K,{}),et="SelectViewport",er=r.forwardRef((e,o)=>{let{__scopeSelect:n,nonce:a,...s}=e,d=q(et,n),c=ee(et,n),u=(0,i.useComposedRefs)(o,d.onViewportChange),p=r.useRef(0);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),(0,t.jsx)(P.Slot,{scope:n,children:(0,t.jsx)(h.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...s,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...s.style},onScroll:(0,l.composeEventHandlers)(s.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:o}=c;if(o?.current&&r){let e=Math.abs(p.current-t.scrollTop);if(e>0){let o=window.innerHeight-20,n=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(n<o){let l=n+e,a=Math.min(o,l),i=l-a;r.style.height=a+"px","0px"===r.style.bottom&&(t.scrollTop=i>0?i:0,r.style.justifyContent="flex-end")}}}p.current=t.scrollTop})})})]})});er.displayName=et;var eo="SelectGroup",[en,el]=I(eo);r.forwardRef((e,r)=>{let{__scopeSelect:o,...n}=e,l=(0,f.useId)();return(0,t.jsx)(en,{scope:o,id:l,children:(0,t.jsx)(h.Primitive.div,{role:"group","aria-labelledby":l,...n,ref:r})})}).displayName=eo;var ea="SelectLabel",ei=r.forwardRef((e,r)=>{let{__scopeSelect:o,...n}=e,l=el(ea,o);return(0,t.jsx)(h.Primitive.div,{id:l.id,...n,ref:r})});ei.displayName=ea;var es="SelectItem",[ed,ec]=I(es),eu=r.forwardRef((e,o)=>{let{__scopeSelect:n,value:a,disabled:s=!1,textValue:d,...c}=e,u=A(es,n),p=q(es,n),v=u.value===a,[m,y]=r.useState(d??""),[g,x]=r.useState(!1),w=(0,i.useComposedRefs)(o,e=>p.itemRefCallback?.(e,a,s)),b=(0,f.useId)(),S=r.useRef("touch"),C=()=>{s||(u.onValueChange(a),u.onOpenChange(!1))};if(""===a)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,t.jsx)(ed,{scope:n,value:a,disabled:s,textId:b,isSelected:v,onItemTextChange:r.useCallback(e=>{y(t=>t||(e?.textContent??"").trim())},[]),children:(0,t.jsx)(P.ItemSlot,{scope:n,value:a,disabled:s,textValue:m,children:(0,t.jsx)(h.Primitive.div,{role:"option","aria-labelledby":b,"data-highlighted":g?"":void 0,"aria-selected":v&&g,"data-state":v?"checked":"unchecked","aria-disabled":s||void 0,"data-disabled":s?"":void 0,tabIndex:s?void 0:-1,...c,ref:w,onFocus:(0,l.composeEventHandlers)(c.onFocus,()=>x(!0)),onBlur:(0,l.composeEventHandlers)(c.onBlur,()=>x(!1)),onClick:(0,l.composeEventHandlers)(c.onClick,()=>{"mouse"!==S.current&&C()}),onPointerUp:(0,l.composeEventHandlers)(c.onPointerUp,()=>{"mouse"===S.current&&C()}),onPointerDown:(0,l.composeEventHandlers)(c.onPointerDown,e=>{S.current=e.pointerType}),onPointerMove:(0,l.composeEventHandlers)(c.onPointerMove,e=>{S.current=e.pointerType,s?p.onItemLeave?.():"mouse"===S.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,l.composeEventHandlers)(c.onPointerLeave,e=>{e.currentTarget===document.activeElement&&p.onItemLeave?.()}),onKeyDown:(0,l.composeEventHandlers)(c.onKeyDown,e=>{(p.searchRef?.current===""||" "!==e.key)&&(R.includes(e.key)&&C()," "===e.key&&e.preventDefault())})})})})});eu.displayName=es;var ep="SelectItemText",ef=r.forwardRef((e,n)=>{let{__scopeSelect:l,className:a,style:s,...d}=e,c=A(ep,l),u=q(ep,l),p=ec(ep,l),f=M(ep,l),[v,m]=r.useState(null),y=(0,i.useComposedRefs)(n,e=>m(e),p.onItemTextChange,e=>u.itemTextRefCallback?.(e,p.value,p.disabled)),g=v?.textContent,x=r.useMemo(()=>(0,t.jsx)("option",{value:p.value,disabled:p.disabled,children:g},p.value),[p.disabled,p.value,g]),{onNativeOptionAdd:b,onNativeOptionRemove:S}=f;return(0,w.useLayoutEffect)(()=>(b(x),()=>S(x)),[b,S,x]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(h.Primitive.span,{id:p.textId,...d,ref:y}),p.isSelected&&c.valueNode&&!c.valueNodeHasChildren?o.createPortal(d.children,c.valueNode):null]})});ef.displayName=ep;var ev="SelectItemIndicator",em=r.forwardRef((e,r)=>{let{__scopeSelect:o,...n}=e;return ec(ev,o).isSelected?(0,t.jsx)(h.Primitive.span,{"aria-hidden":!0,...n,ref:r}):null});em.displayName=ev;var eh="SelectScrollUpButton",ey=r.forwardRef((e,o)=>{let n=q(eh,e.__scopeSelect),l=ee(eh,e.__scopeSelect),[a,s]=r.useState(!1),d=(0,i.useComposedRefs)(o,l.onScrollButtonChange);return(0,w.useLayoutEffect)(()=>{if(n.viewport&&n.isPositioned){let e=function(){s(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[n.viewport,n.isPositioned]),a?(0,t.jsx)(ew,{...e,ref:d,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});ey.displayName=eh;var eg="SelectScrollDownButton",ex=r.forwardRef((e,o)=>{let n=q(eg,e.__scopeSelect),l=ee(eg,e.__scopeSelect),[a,s]=r.useState(!1),d=(0,i.useComposedRefs)(o,l.onScrollButtonChange);return(0,w.useLayoutEffect)(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;s(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[n.viewport,n.isPositioned]),a?(0,t.jsx)(ew,{...e,ref:d,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});ex.displayName=eg;var ew=r.forwardRef((e,o)=>{let{__scopeSelect:n,onAutoScroll:a,...i}=e,s=q("SelectScrollButton",n),d=r.useRef(null),c=k(n),u=r.useCallback(()=>{null!==d.current&&(window.clearInterval(d.current),d.current=null)},[]);return r.useEffect(()=>()=>u(),[u]),(0,w.useLayoutEffect)(()=>{let e=c().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[c]),(0,t.jsx)(h.Primitive.div,{"aria-hidden":!0,...i,ref:o,style:{flexShrink:0,...i.style},onPointerDown:(0,l.composeEventHandlers)(i.onPointerDown,()=>{null===d.current&&(d.current=window.setInterval(a,50))}),onPointerMove:(0,l.composeEventHandlers)(i.onPointerMove,()=>{s.onItemLeave?.(),null===d.current&&(d.current=window.setInterval(a,50))}),onPointerLeave:(0,l.composeEventHandlers)(i.onPointerLeave,()=>{u()})})}),eb=r.forwardRef((e,r)=>{let{__scopeSelect:o,...n}=e;return(0,t.jsx)(h.Primitive.div,{"aria-hidden":!0,...n,ref:r})});eb.displayName="SelectSeparator";var eS="SelectArrow";r.forwardRef((e,r)=>{let{__scopeSelect:o,...n}=e,l=D(o),a=A(eS,o),i=q(eS,o);return a.open&&"popper"===i.position?(0,t.jsx)(v.Arrow,{...l,...n,ref:r}):null}).displayName=eS;var eC=r.forwardRef(({__scopeSelect:e,value:o,...n},l)=>{let a=r.useRef(null),s=(0,i.useComposedRefs)(l,a),d=(0,b.usePrevious)(o);return r.useEffect(()=>{let e=a.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(d!==o&&t){let r=new Event("change",{bubbles:!0});t.call(e,o),e.dispatchEvent(r)}},[d,o]),(0,t.jsx)(h.Primitive.select,{...n,style:{...S.VISUALLY_HIDDEN_STYLES,...n.style},ref:s,defaultValue:o})});function ej(e){return""===e||void 0===e}function eN(e){let t=(0,g.useCallbackRef)(e),o=r.useRef(""),n=r.useRef(0),l=r.useCallback(e=>{let r=o.current+e;t(r),function e(t){o.current=t,window.clearTimeout(n.current),""!==t&&(n.current=window.setTimeout(()=>e(""),1e3))}(r)},[t]),a=r.useCallback(()=>{o.current="",window.clearTimeout(n.current)},[]);return r.useEffect(()=>()=>window.clearTimeout(n.current),[]),[o,l,a]}function eR(e,t,r){var o,n;let l=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,a=r?e.indexOf(r):-1,i=(o=e,n=Math.max(a,0),o.map((e,t)=>o[(n+t)%o.length]));1===l.length&&(i=i.filter(e=>e!==r));let s=i.find(e=>e.textValue.toLowerCase().startsWith(l.toLowerCase()));return s!==r?s:void 0}eC.displayName="SelectBubbleInput";var eE=e.i(6703),eP=e.i(20268),ek=e.i(90055),eT=e.i(76490);let eI=r.forwardRef(({className:e,children:r,...o},n)=>(0,t.jsxs)(B,{ref:n,className:(0,eT.cn)("flex h-8 w-full items-center justify-between whitespace-nowrap rounded-md border border-[hsl(var(--border))] px-3 py-1 text-sm transition-colors data-[placeholder]:text-[hsl(var(--subtle))] focus:outline-none focus:border-[hsl(var(--primary))] focus:ring-2 focus:ring-[hsl(var(--primary)/0.2)] disabled:cursor-not-allowed disabled:bg-[hsl(var(--secondary))] disabled:text-[hsl(var(--muted-foreground))] [&>span]:line-clamp-1","bg-[hsl(var(--card))]",e),...o,children:[r,(0,t.jsx)(F,{asChild:!0,children:(0,t.jsx)(eP.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));eI.displayName=B.displayName;let eL=r.forwardRef(({className:e,...r},o)=>(0,t.jsx)(ey,{ref:o,className:(0,eT.cn)("flex cursor-default items-center justify-center py-1",e),...r,children:(0,t.jsx)(ek.ChevronUp,{className:"h-4 w-4"})}));eL.displayName=ey.displayName;let eD=r.forwardRef(({className:e,...r},o)=>(0,t.jsx)(ex,{ref:o,className:(0,eT.cn)("flex cursor-default items-center justify-center py-1",e),...r,children:(0,t.jsx)(eP.ChevronDown,{className:"h-4 w-4"})}));eD.displayName=ex.displayName;let eH=r.forwardRef(({className:e,children:r,position:o="popper",...n},l)=>(0,t.jsx)(U,{children:(0,t.jsxs)($,{ref:l,className:(0,eT.cn)("relative z-50 max-h-72 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border border-[hsl(var(--border))] 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-select-content-transform-origin]","bg-[hsl(var(--popover))] text-[hsl(var(--popover-foreground))]","popper"===o&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:o,...n,children:[(0,t.jsx)(eL,{}),(0,t.jsx)(er,{className:(0,eT.cn)("p-1","popper"===o&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:r}),(0,t.jsx)(eD,{})]})}));eH.displayName=$.displayName,r.forwardRef(({className:e,...r},o)=>(0,t.jsx)(ei,{ref:o,className:(0,eT.cn)("px-2 py-1.5 text-sm font-semibold",e),...r})).displayName=ei.displayName;let eA=r.forwardRef(({className:e,children:r,...o},n)=>(0,t.jsxs)(eu,{ref:n,className:(0,eT.cn)("relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50","hover:bg-[hsl(var(--primary-soft))] hover:text-[hsl(var(--primary))] focus:bg-[hsl(var(--primary-soft))] focus:text-[hsl(var(--primary))]","data-[state=checked]:bg-[hsl(var(--primary-soft))] data-[state=checked]:text-[hsl(var(--primary))]",e),...o,children:[(0,t.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,t.jsx)(em,{children:(0,t.jsx)(eE.Check,{className:"h-4 w-4"})})}),(0,t.jsx)(ef,{children:r})]}));eA.displayName=eu.displayName,r.forwardRef(({className:e,...r},o)=>(0,t.jsx)(eb,{ref:o,className:(0,eT.cn)("-mx-1 my-1 h-px bg-muted",e),...r})).displayName=eb.displayName,e.s(["Select",0,V,"SelectContent",0,eH,"SelectItem",0,eA,"SelectTrigger",0,eI,"SelectValue",0,z],66473)}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/0hmuddei8wdpj.js","static/chunks/0_kxvayp~5_.f.js","static/chunks/0zbi5n76awxz1.js","static/chunks/0a~2vs7-pt-aj.js","static/chunks/0fagnytrt.3oe.js"],runtimeModuleIds:[69959]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,i=((o=i||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let l=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}u.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},u.j=function(e,t){var r,n;let o,i,s;null!=t?i=(o=p(this.c,t)).exports:(o=this.m,i=this.e);let u=(r=o,n=i,(s=l.get(r))||(l.set(r,s=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of s){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of s)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),s);"object"==typeof e&&null!==e&&u.push(e)},u.v=m,u.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function w(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function O(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function j(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=w,u.A=function(e){return this.r(e)(w.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=O(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=O(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let k=Symbol("turbopack queues"),v=Symbol("turbopack exports"),U=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=j(),u=Object.assign(s,{[v]:r.exports,[k]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[v]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(k in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[v]:{},[k]:e=>e(t)};return e.then(e=>{r[v]=e,C(t)},e=>{r[U]=e,C(t)}),r}}return{[v]:e,[k]:()=>{}}}),r=()=>t.map(e=>{if(e[U])throw e[U];return e[v]}),{promise:i,resolve:l}=j(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[k](u)),s.queueCount?i:r()},function(e){e?l(u[U]=e):i(u[v]),C(n)}),n&&-1===n.status&&(n.status=0)};let P=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}P.prototype=URL.prototype,u.U=P,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let S=s.prototype,$=new Map;u.M=$;let _=new Map,E=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,N(r));let o=r.included||[],i=o.map(e=>!!$.has(e)||_.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>E.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)E.has(e)||r.add(e);for(let n of r){let r=M(e,t,N(n));E.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,N(r.path)),l))E.has(o)||E.set(o,n)}for(let e of o)_.has(e)||_.set(e,n);await n}S.l=function(e){return T(i.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),l=x.get(o);if(void 0===l){let e=x.set.bind(x,o,A);l=o.then(e).catch(e=>{let o;switch(t){case i.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case i.Parent:o=`from module ${r}`;break;case i.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(o,l)}return l}function N(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(i.Parent,this.m.id,e)},S.R=function(e){let t=this.r(e);return t?.default??t},S.P=function(e){return`/ROOT/${e??""}`},S.q=function(e,t){m.call(this,`${e}${r}`,t)},S.b=function(e,t,o,i){let l="SharedWorker"===e.name,s=[o.map(e=>N(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(N(t),location.origin),a=JSON.stringify(s);return l?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,i?{...i,type:void 0}:void 0)};let K=/\.js(?:\?[^#]*)?(?:#.*)?$/,q=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return q.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(i.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(i.Parent,this.m.id,t,r)};let I={};u.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,i.Parent,t.id)};function W(e,t,r){let n=$.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),i=o.exports;I[e]=o;let l=new s(o,i);try{n(l,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let i=e[o];for(let i=r;i<o;i++){let r=e[i],o=t.get(r);if(o){n=o;break}}let l=n??i,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(l===i&&Object.defineProperty(i,"name",{value:"module evaluation"}),s=!0),t.set(r,l))}r=o+1}}(t,$)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?N(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(N("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(i.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,i.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===i.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(K.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(K.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(N(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(N(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/0hmuddei8wdpj.js","static/chunks/0_kxvayp~5_.f.js","static/chunks/08qlxn-3d_rtu.js","static/chunks/0a~2vs7-pt-aj.js","static/chunks/0fagnytrt.3oe.js"],runtimeModuleIds:[69959]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,i=((o=i||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let l=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}u.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},u.j=function(e,t){var r,n;let o,i,s;null!=t?i=(o=p(this.c,t)).exports:(o=this.m,i=this.e);let u=(r=o,n=i,(s=l.get(r))||(l.set(r,s=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of s){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of s)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),s);"object"==typeof e&&null!==e&&u.push(e)},u.v=m,u.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function O(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function w(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function j(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=O,u.A=function(e){return this.r(e)(O.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=w(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=w(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let k=Symbol("turbopack queues"),v=Symbol("turbopack exports"),U=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=j(),u=Object.assign(s,{[v]:r.exports,[k]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[v]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(k in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[v]:{},[k]:e=>e(t)};return e.then(e=>{r[v]=e,C(t)},e=>{r[U]=e,C(t)}),r}}return{[v]:e,[k]:()=>{}}}),r=()=>t.map(e=>{if(e[U])throw e[U];return e[v]}),{promise:i,resolve:l}=j(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[k](u)),s.queueCount?i:r()},function(e){e?l(u[U]=e):i(u[v]),C(n)}),n&&-1===n.status&&(n.status=0)};let P=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}P.prototype=URL.prototype,u.U=P,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let S=s.prototype,_=new Map;u.M=_;let $=new Map,E=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,N(r));let o=r.included||[],i=o.map(e=>!!_.has(e)||$.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>E.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)E.has(e)||r.add(e);for(let n of r){let r=M(e,t,N(n));E.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,N(r.path)),l))E.has(o)||E.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}S.l=function(e){return T(i.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),l=x.get(o);if(void 0===l){let e=x.set.bind(x,o,A);l=o.then(e).catch(e=>{let o;switch(t){case i.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case i.Parent:o=`from module ${r}`;break;case i.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(o,l)}return l}function N(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(i.Parent,this.m.id,e)},S.R=function(e){let t=this.r(e);return t?.default??t},S.P=function(e){return`/ROOT/${e??""}`},S.q=function(e,t){m.call(this,`${e}${r}`,t)},S.b=function(e,t,o,i){let l="SharedWorker"===e.name,s=[o.map(e=>N(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(N(t),location.origin),a=JSON.stringify(s);return l?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,i?{...i,type:void 0}:void 0)};let q=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return K.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(i.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(i.Parent,this.m.id,t,r)};let I={};u.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,i.Parent,t.id)};function W(e,t,r){let n=_.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),i=o.exports;I[e]=o;let l=new s(o,i);try{n(l,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let i=e[o];for(let i=r;i<o;i++){let r=e[i],o=t.get(r);if(o){n=o;break}}let l=n??i,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(l===i&&Object.defineProperty(i,"name",{value:"module evaluation"}),s=!0),t.set(r,l))}r=o+1}}(t,_)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?N(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(N("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(i.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,i.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===i.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(q.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(q.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(N(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(N(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
|
package/dist/dashboard-runtime/dashboard/src/app/api/v1/knowledge-bases/[name]/documents/route.ts
CHANGED
|
@@ -55,12 +55,32 @@ export async function GET(request: NextRequest, context: RouteContext) {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
/**
|
|
59
|
+
* Normalize a caller-supplied `ossKey` into the `oss://<bucket>/<key>` URI
|
|
60
|
+
* the upstream KB API requires. The dashboard browser sends bare keys (the
|
|
61
|
+
* shape that comes out of `client.list`), and the CLI forwards whatever the
|
|
62
|
+
* user typed; either may already be a URI. Pass-through when it is, prepend
|
|
63
|
+
* the configured bucket otherwise.
|
|
64
|
+
*
|
|
65
|
+
* Bucket comes from the resolved AppConfig — the same value the OSS browse
|
|
66
|
+
* routes (`/api/v1/oss/list`, `/api/v1/oss/expand-prefix`) use, so the URI
|
|
67
|
+
* we forward is guaranteed to point at the same bucket the user just
|
|
68
|
+
* browsed.
|
|
69
|
+
*/
|
|
70
|
+
function normalizeDocumentOssKey(ossKey: unknown, bucket: string): unknown {
|
|
71
|
+
if (typeof ossKey !== "string" || ossKey.length === 0) return ossKey;
|
|
72
|
+
if (ossKey.startsWith("oss://")) return ossKey;
|
|
73
|
+
// Strip a leading "/" so the user can paste either "docs/x.md" or "/docs/x.md".
|
|
74
|
+
const trimmed = ossKey.startsWith("/") ? ossKey.slice(1) : ossKey;
|
|
75
|
+
return `oss://${bucket}/${trimmed}`;
|
|
76
|
+
}
|
|
77
|
+
|
|
58
78
|
export async function POST(request: NextRequest, context: RouteContext) {
|
|
59
79
|
try {
|
|
60
80
|
const { name } = await context.params;
|
|
61
81
|
const auth = requireClients(request);
|
|
62
82
|
if (!("kb" in auth)) return auth;
|
|
63
|
-
const { kb } = auth;
|
|
83
|
+
const { kb, config } = auth;
|
|
64
84
|
|
|
65
85
|
let body: Record<string, unknown>;
|
|
66
86
|
try {
|
|
@@ -73,9 +93,30 @@ export async function POST(request: NextRequest, context: RouteContext) {
|
|
|
73
93
|
});
|
|
74
94
|
}
|
|
75
95
|
|
|
76
|
-
const { knowledgeBaseName: _ignoredAdd, ...
|
|
96
|
+
const { knowledgeBaseName: _ignoredAdd, documents, ...rest } = body;
|
|
77
97
|
void _ignoredAdd;
|
|
78
|
-
|
|
98
|
+
|
|
99
|
+
// Prepend `oss://<bucket>/` to every document item's ossKey, in place.
|
|
100
|
+
// We mutate a shallow copy of the array so the request the user sent
|
|
101
|
+
// (held by the caller) is not modified.
|
|
102
|
+
const bucket = (config.oss_bucket_name ?? "").trim();
|
|
103
|
+
const normalizedDocuments = Array.isArray(documents)
|
|
104
|
+
? bucket
|
|
105
|
+
? documents.map((doc) => {
|
|
106
|
+
if (doc && typeof doc === "object" && "ossKey" in doc) {
|
|
107
|
+
const item = doc as Record<string, unknown>;
|
|
108
|
+
return { ...item, ossKey: normalizeDocumentOssKey(item.ossKey, bucket) };
|
|
109
|
+
}
|
|
110
|
+
return doc;
|
|
111
|
+
})
|
|
112
|
+
: documents
|
|
113
|
+
: documents;
|
|
114
|
+
|
|
115
|
+
const resp = await kb.addDocuments({
|
|
116
|
+
...rest,
|
|
117
|
+
documents: normalizedDocuments,
|
|
118
|
+
knowledgeBaseName: name,
|
|
119
|
+
});
|
|
79
120
|
return forwardResponse(resp);
|
|
80
121
|
} catch (error) {
|
|
81
122
|
return handleApiError(error);
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { type NextRequest } from "next/server";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
errorResponse,
|
|
5
|
+
handleApiError,
|
|
6
|
+
requireClients,
|
|
7
|
+
successResponse,
|
|
8
|
+
} from "@/lib/server/api-helpers";
|
|
9
|
+
import { getOssClient, mapOssError } from "@/lib/server/oss-client";
|
|
10
|
+
|
|
11
|
+
export const runtime = "nodejs";
|
|
12
|
+
export const dynamic = "force-dynamic";
|
|
13
|
+
|
|
14
|
+
const DEFAULT_PAGE_SIZE = 100;
|
|
15
|
+
const MAX_PAGE_SIZE = 1000;
|
|
16
|
+
|
|
17
|
+
interface OssListFolder {
|
|
18
|
+
name: string;
|
|
19
|
+
prefix: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
interface OssListFile {
|
|
23
|
+
name: string;
|
|
24
|
+
ossKey: string;
|
|
25
|
+
size: number;
|
|
26
|
+
lastModified: string; // ISO
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* GET /api/v1/oss/list?prefix=&continuationToken=&maxResults=&search=
|
|
31
|
+
*
|
|
32
|
+
* One-level listing for the dashboard's OSS browser. Returns common-prefixes
|
|
33
|
+
* (folders) and objects (files) separately so the UI doesn't have to
|
|
34
|
+
* re-derive structure from raw keys.
|
|
35
|
+
*/
|
|
36
|
+
export async function GET(request: NextRequest | Request) {
|
|
37
|
+
try {
|
|
38
|
+
const auth = requireClients(request as NextRequest);
|
|
39
|
+
if (!("config" in auth)) return auth;
|
|
40
|
+
|
|
41
|
+
const client = getOssClient(auth.config);
|
|
42
|
+
if (!client) {
|
|
43
|
+
return errorResponse(
|
|
44
|
+
"OSS_NOT_CONFIGURED",
|
|
45
|
+
"OSS endpoint / bucket are not configured for this instance",
|
|
46
|
+
400,
|
|
47
|
+
{ errorSource: "local" },
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const url = new URL(request.url);
|
|
52
|
+
const prefix = url.searchParams.get("prefix") ?? "";
|
|
53
|
+
const continuationToken =
|
|
54
|
+
url.searchParams.get("continuationToken") ?? undefined;
|
|
55
|
+
const search = url.searchParams.get("search")?.trim() ?? "";
|
|
56
|
+
|
|
57
|
+
const maxRaw = Number(url.searchParams.get("maxResults") ?? DEFAULT_PAGE_SIZE);
|
|
58
|
+
const maxResults = Number.isFinite(maxRaw)
|
|
59
|
+
? Math.min(MAX_PAGE_SIZE, Math.max(1, Math.trunc(maxRaw)))
|
|
60
|
+
: DEFAULT_PAGE_SIZE;
|
|
61
|
+
|
|
62
|
+
let resp: {
|
|
63
|
+
objects?: Array<{ name: string; size: number; lastModified: Date | string }>;
|
|
64
|
+
prefixes?: string[];
|
|
65
|
+
nextMarker?: string | null;
|
|
66
|
+
isTruncated?: boolean;
|
|
67
|
+
};
|
|
68
|
+
try {
|
|
69
|
+
resp = await client.list(
|
|
70
|
+
{
|
|
71
|
+
prefix,
|
|
72
|
+
delimiter: "/",
|
|
73
|
+
marker: continuationToken,
|
|
74
|
+
"max-keys": maxResults,
|
|
75
|
+
},
|
|
76
|
+
{},
|
|
77
|
+
);
|
|
78
|
+
} catch (error) {
|
|
79
|
+
const mapped = mapOssError(error);
|
|
80
|
+
return errorResponse(mapped.code, mapped.message, mapped.httpStatus, {
|
|
81
|
+
errorSource: "service",
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// ali-oss returns the synthetic "folder marker" object whose name === prefix
|
|
86
|
+
// when the bucket was created with a UI tool. It carries size 0 and is not
|
|
87
|
+
// a real file — drop it so the UI doesn't show "/" as a row.
|
|
88
|
+
const rawObjects = resp.objects ?? [];
|
|
89
|
+
let files: OssListFile[] = rawObjects
|
|
90
|
+
.filter((o) => o.name !== prefix)
|
|
91
|
+
.map((o) => ({
|
|
92
|
+
name: o.name.slice(prefix.length),
|
|
93
|
+
ossKey: o.name,
|
|
94
|
+
size: o.size,
|
|
95
|
+
lastModified:
|
|
96
|
+
o.lastModified instanceof Date
|
|
97
|
+
? o.lastModified.toISOString()
|
|
98
|
+
: String(o.lastModified ?? ""),
|
|
99
|
+
}));
|
|
100
|
+
|
|
101
|
+
let folders: OssListFolder[] = (resp.prefixes ?? []).map((p) => ({
|
|
102
|
+
name: p.slice(prefix.length),
|
|
103
|
+
prefix: p,
|
|
104
|
+
}));
|
|
105
|
+
|
|
106
|
+
// Server-side substring filter — applied after listing so it does not
|
|
107
|
+
// interfere with OSS's prefix scanning. Operates on the visible name
|
|
108
|
+
// (without the parent prefix) for predictable UX.
|
|
109
|
+
if (search) {
|
|
110
|
+
const needle = search.toLowerCase();
|
|
111
|
+
files = files.filter((f) => f.name.toLowerCase().includes(needle));
|
|
112
|
+
folders = folders.filter((f) => f.name.toLowerCase().includes(needle));
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return successResponse({
|
|
116
|
+
prefix,
|
|
117
|
+
folders,
|
|
118
|
+
files,
|
|
119
|
+
nextContinuationToken: resp.isTruncated ? resp.nextMarker ?? null : null,
|
|
120
|
+
totalEstimate: folders.length + files.length,
|
|
121
|
+
});
|
|
122
|
+
} catch (error) {
|
|
123
|
+
return handleApiError(error);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -111,47 +111,62 @@
|
|
|
111
111
|
--primary-800: 214 95% 87%;
|
|
112
112
|
--primary-900: 214 100% 93%;
|
|
113
113
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
--
|
|
130
|
-
|
|
131
|
-
--
|
|
114
|
+
/*
|
|
115
|
+
* Dark-mode neutrals — GitHub primer-dark style.
|
|
116
|
+
*
|
|
117
|
+
* Earlier the dark theme ran on `222° 47% L` everywhere (a saturated
|
|
118
|
+
* Tailwind-slate / Stripe-style blue). On a screen the high saturation
|
|
119
|
+
* made every "neutral" surface feel blue-tinted, which fights against
|
|
120
|
+
* the primary blue accent — `#2563eb` ended up sitting on a background
|
|
121
|
+
* with the same hue, killing the contrast that gives a CTA its lift.
|
|
122
|
+
*
|
|
123
|
+
* Industry mainstream in 2024-2026 leans toward a desaturated dark
|
|
124
|
+
* with a *subtle* cool tint (GitHub `#0d1117`, Linear `#0e0e10`).
|
|
125
|
+
* We follow GitHub's hue (≈220°) and saturation (~13%) for the
|
|
126
|
+
* grayscale tokens, and keep all primary/accent tokens unchanged so
|
|
127
|
+
* the brand identity is preserved.
|
|
128
|
+
*/
|
|
129
|
+
--primary-soft: 218 28% 18%; /* slightly desat to match new neutrals */
|
|
130
|
+
|
|
131
|
+
--background: 220 13% 8%; /* was 222 47% 7% ≈ #0d1117 */
|
|
132
|
+
--foreground: 213 13% 92%;
|
|
133
|
+
|
|
134
|
+
--card: 220 13% 11%; /* was 222 47% 11% ≈ #161b22 */
|
|
135
|
+
--card-foreground: 213 13% 92%;
|
|
136
|
+
|
|
137
|
+
--popover: 220 13% 11%;
|
|
138
|
+
--popover-foreground: 213 13% 92%;
|
|
139
|
+
|
|
140
|
+
--secondary: 220 13% 18%; /* was 217 19% 18% */
|
|
141
|
+
--secondary-foreground: 213 13% 92%;
|
|
142
|
+
|
|
143
|
+
--muted: 220 13% 22%;
|
|
144
|
+
--muted-foreground: 215 10% 65%;
|
|
145
|
+
|
|
146
|
+
--accent: 218 28% 18%; /* hover/active tint, less blue-shift */
|
|
132
147
|
--accent-foreground: 221 83% 80%;
|
|
133
148
|
|
|
134
149
|
--destructive: 0 84% 65%;
|
|
135
150
|
--destructive-foreground: 0 0% 100%;
|
|
136
151
|
|
|
137
|
-
--border:
|
|
138
|
-
--border-light:
|
|
139
|
-
--input:
|
|
152
|
+
--border: 220 13% 22%; /* ≈ #21262d, GitHub border default */
|
|
153
|
+
--border-light: 220 13% 16%;
|
|
154
|
+
--input: 220 13% 22%;
|
|
140
155
|
--ring: 221 83% 62%;
|
|
141
156
|
|
|
142
|
-
--surface:
|
|
143
|
-
--surface-secondary:
|
|
144
|
-
--surface-tertiary:
|
|
157
|
+
--surface: 220 13% 11%;
|
|
158
|
+
--surface-secondary: 220 13% 9%;
|
|
159
|
+
--surface-tertiary: 220 13% 22%;
|
|
145
160
|
|
|
146
|
-
--subtle: 215
|
|
147
|
-
--subtle-light: 215
|
|
148
|
-
--subtle-dark:
|
|
161
|
+
--subtle: 215 10% 47%;
|
|
162
|
+
--subtle-light: 215 10% 35%;
|
|
163
|
+
--subtle-dark: 213 13% 80%;
|
|
149
164
|
|
|
150
|
-
--sidebar-bg:
|
|
151
|
-
--sidebar-border:
|
|
152
|
-
--sidebar-active-bg:
|
|
165
|
+
--sidebar-bg: 220 13% 9%;
|
|
166
|
+
--sidebar-border: 220 13% 22%;
|
|
167
|
+
--sidebar-active-bg: 218 28% 17%; /* slightly more chroma so active row reads */
|
|
153
168
|
--sidebar-active-fg: 221 83% 80%;
|
|
154
|
-
--sidebar-text:
|
|
169
|
+
--sidebar-text: 213 13% 80%;
|
|
155
170
|
|
|
156
171
|
--success: 142 71% 55%;
|
|
157
172
|
--success-soft: 142 30% 18%;
|
|
@@ -1,74 +1,40 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { useState } from "react";
|
|
4
3
|
import { Plus } from "lucide-react";
|
|
5
4
|
|
|
6
|
-
import {
|
|
7
|
-
Select,
|
|
8
|
-
SelectContent,
|
|
9
|
-
SelectItem,
|
|
10
|
-
SelectTrigger,
|
|
11
|
-
SelectValue,
|
|
12
|
-
} from "@/components/ui/select";
|
|
13
5
|
import type { KnowledgeBase } from "@/types/knowledge-base";
|
|
14
6
|
|
|
7
|
+
import { MountPicker } from "./mount-picker";
|
|
8
|
+
|
|
15
9
|
interface AddMountRowProps {
|
|
16
10
|
kbs: KnowledgeBase[];
|
|
17
11
|
onAdd: (kb: KnowledgeBase) => void;
|
|
18
12
|
}
|
|
19
13
|
|
|
20
14
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
15
|
+
* Compact "add another KB" affordance shown beneath the list of already-
|
|
16
|
+
* mounted KBs. Visually subordinate to the rows above (dashed border, muted
|
|
17
|
+
* fill) because the user has already crossed the onboarding threshold — the
|
|
18
|
+
* primary task here is now reading the existing list, not adding more.
|
|
25
19
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* the affordance ready for the next pick without leaving a stale label
|
|
29
|
-
* in the trigger.
|
|
20
|
+
* For the zero-mounts onboarding moment use [[MountEmptyState]] instead;
|
|
21
|
+
* that variant promotes the same picker into the panel's focal point.
|
|
30
22
|
*/
|
|
31
23
|
export function AddMountRow({ kbs, onAdd }: AddMountRowProps) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const handleChange = (value: string) => {
|
|
35
|
-
const kb = kbs.find((item) => item.knowledgeBaseName === value);
|
|
36
|
-
if (!kb) return;
|
|
37
|
-
onAdd(kb);
|
|
38
|
-
setRefreshKey((k) => k + 1);
|
|
39
|
-
};
|
|
24
|
+
if (kbs.length === 0) return null;
|
|
40
25
|
|
|
41
26
|
return (
|
|
42
|
-
<
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
</div>
|
|
55
|
-
</SelectTrigger>
|
|
56
|
-
<SelectContent>
|
|
57
|
-
{kbs.length === 0 ? (
|
|
58
|
-
<SelectItem value="__empty" disabled>
|
|
59
|
-
无可挂载的知识库
|
|
60
|
-
</SelectItem>
|
|
61
|
-
) : (
|
|
62
|
-
kbs.map((kb) => (
|
|
63
|
-
<SelectItem
|
|
64
|
-
key={kb.knowledgeBaseName}
|
|
65
|
-
value={kb.knowledgeBaseName}
|
|
66
|
-
>
|
|
67
|
-
{kb.knowledgeBaseName}
|
|
68
|
-
</SelectItem>
|
|
69
|
-
))
|
|
70
|
-
)}
|
|
71
|
-
</SelectContent>
|
|
72
|
-
</Select>
|
|
27
|
+
<MountPicker kbs={kbs} onPick={onAdd} align="start">
|
|
28
|
+
<button
|
|
29
|
+
type="button"
|
|
30
|
+
className="group flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed border-[hsl(var(--border))] bg-transparent px-3 py-2 text-xs font-medium text-[hsl(var(--muted-foreground))] transition-colors hover:border-[hsl(var(--primary)/0.5)] hover:bg-[hsl(var(--primary-soft))] hover:text-[hsl(var(--primary))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--primary)/0.3)] focus-visible:ring-offset-1 focus-visible:ring-offset-[hsl(var(--background))]"
|
|
31
|
+
>
|
|
32
|
+
<Plus className="h-3.5 w-3.5 transition-transform group-hover:rotate-90" />
|
|
33
|
+
添加更多知识库
|
|
34
|
+
<span className="text-[hsl(var(--muted-foreground))]/70 group-hover:text-[hsl(var(--primary))]/70">
|
|
35
|
+
({kbs.length})
|
|
36
|
+
</span>
|
|
37
|
+
</button>
|
|
38
|
+
</MountPicker>
|
|
73
39
|
);
|
|
74
40
|
}
|