@jheavenknows/bluerouter 5.4.29 → 5.4.31
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/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +6 -6
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/console/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personal/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/stt/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/tts/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/api/audit-proxy/ca/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/audit-proxy/me/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/audit-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/audit-proxy/users/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/view-mode/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/branding/[asset]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/branding/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/branding/upload/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-model-profiles/cloud-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-model-profiles/model-catalog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/config/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/heartbeat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/codex-catalog/download/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/codex-catalog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/codex-catalog/upload/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/ai-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/device-code/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/poll/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/api-key-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/move/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/shares/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/visibility/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/catalog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/recalculate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/openai-compatible/manage/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cluster.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/logs.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/logs.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/logs.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/logs.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/personal.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/personal.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/personal.segments/!KGRhc2hib2FyZCk/dashboard/personal/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/personal.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/personal.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/stt.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/stt.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/!KGRhc2hib2FyZCk/dashboard/providers/stt/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/tts.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/tts.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/!KGRhc2hib2FyZCk/dashboard/providers/tts/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +6 -6
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +6 -6
- package/app/.next-cli-build/server/chunks/2428.js +1 -1
- package/app/.next-cli-build/server/chunks/3399.js +1 -1
- package/app/.next-cli-build/server/chunks/4746.js +1 -1
- package/app/.next-cli-build/server/chunks/5210.js +2 -2
- package/app/.next-cli-build/server/chunks/5681.js +1 -1
- package/app/.next-cli-build/server/chunks/6811.js +1 -1
- package/app/.next-cli-build/server/chunks/6992.js +3 -3
- package/app/.next-cli-build/server/chunks/9489.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/static/chunks/{5263-675098c923e1ee6b.js → 5263-477ca0647cd503db.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-40f8c0de36eb917b.js +1 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-786d94f8dd164774.js +0 -1
- /package/app/.next-cli-build/static/{RLHlm_VhJtUy0g062tWk9 → IRwha3MH1YYjHYT_YyNhk}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{RLHlm_VhJtUy0g062tWk9 → IRwha3MH1YYjHYT_YyNhk}/_ssgManifest.js +0 -0
- /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.4.19-to-5.4.20-5.4.20-20260825-164658 → upgrade-5.4.27-to-5.4.28-5.4.28-20260827-204756}/data.sqlite +0 -0
- /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.4.20-to-5.4.25-5.4.25-20260827-195431 → upgrade-5.4.28-to-5.4.29-5.4.29-20260827-210312}/data.sqlite +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=3649,a.ids=[3649],a.modules={1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17419:(a,b,c)=>{Promise.resolve().then(c.bind(c,35447))},18513:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>ci});var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w=c(48249),x=c(67484),y=c.n(x),z=c(74429);let A="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function B(a){let b=Object.prototype.toString.call(a);return"[object Window]"===b||"[object global]"===b}function C(a){return"nodeType"in a}function D(a){var b,c;return a?B(a)?a:C(a)&&null!=(b=null==(c=a.ownerDocument)?void 0:c.defaultView)?b:window:window}function E(a){let{Document:b}=D(a);return a instanceof b}function F(a){return!B(a)&&a instanceof D(a).HTMLElement}function G(a){return a instanceof D(a).SVGElement}function H(a){return a?B(a)?a.document:C(a)?E(a)?a:F(a)||G(a)?a.ownerDocument:document:document:document}let I=A?x.useLayoutEffect:x.useEffect;function J(a){let b=(0,x.useRef)(a);return I(()=>{b.current=a}),(0,x.useCallback)(function(){for(var a=arguments.length,c=Array(a),d=0;d<a;d++)c[d]=arguments[d];return null==b.current?void 0:b.current(...c)},[])}function K(a,b){void 0===b&&(b=[a]);let c=(0,x.useRef)(a);return I(()=>{c.current!==a&&(c.current=a)},b),c}function L(a,b){let c=(0,x.useRef)();return(0,x.useMemo)(()=>{let b=a(c.current);return c.current=b,b},[...b])}function M(a){let b=J(a),c=(0,x.useRef)(null),d=(0,x.useCallback)(a=>{a!==c.current&&(null==b||b(a,c.current)),c.current=a},[]);return[c,d]}function N(a){let b=(0,x.useRef)();return(0,x.useEffect)(()=>{b.current=a},[a]),b.current}let O={};function P(a,b){return(0,x.useMemo)(()=>{if(b)return b;let c=null==O[a]?0:O[a]+1;return O[a]=c,a+"-"+c},[a,b])}function Q(a){return function(b){for(var c=arguments.length,d=Array(c>1?c-1:0),e=1;e<c;e++)d[e-1]=arguments[e];return d.reduce((b,c)=>{for(let[d,e]of Object.entries(c)){let c=b[d];null!=c&&(b[d]=c+a*e)}return b},{...b})}}let R=Q(1),S=Q(-1);function T(a){if(!a)return!1;let{KeyboardEvent:b}=D(a.target);return b&&a instanceof b}function U(a){if(function(a){if(!a)return!1;let{TouchEvent:b}=D(a.target);return b&&a instanceof b}(a)){if(a.touches&&a.touches.length){let{clientX:b,clientY:c}=a.touches[0];return{x:b,y:c}}else if(a.changedTouches&&a.changedTouches.length){let{clientX:b,clientY:c}=a.changedTouches[0];return{x:b,y:c}}}return"clientX"in a&&"clientY"in a?{x:a.clientX,y:a.clientY}:null}let V=Object.freeze({Translate:{toString(a){if(!a)return;let{x:b,y:c}=a;return"translate3d("+(b?Math.round(b):0)+"px, "+(c?Math.round(c):0)+"px, 0)"}},Scale:{toString(a){if(!a)return;let{scaleX:b,scaleY:c}=a;return"scaleX("+b+") scaleY("+c+")"}},Transform:{toString(a){if(a)return[V.Translate.toString(a),V.Scale.toString(a)].join(" ")}},Transition:{toString(a){let{property:b,duration:c,easing:d}=a;return b+" "+c+"ms "+d}}}),W="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",X={display:"none"};function Y(a){let{id:b,value:c}=a;return y().createElement("div",{id:b,style:X},c)}function Z(a){let{id:b,announcement:c,ariaLiveType:d="assertive"}=a;return y().createElement("div",{id:b,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":d,"aria-atomic":!0},c)}let $=(0,x.createContext)(null),_={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},aa={onDragStart(a){let{active:b}=a;return"Picked up draggable item "+b.id+"."},onDragOver(a){let{active:b,over:c}=a;return c?"Draggable item "+b.id+" was moved over droppable area "+c.id+".":"Draggable item "+b.id+" is no longer over a droppable area."},onDragEnd(a){let{active:b,over:c}=a;return c?"Draggable item "+b.id+" was dropped over droppable area "+c.id:"Draggable item "+b.id+" was dropped."},onDragCancel(a){let{active:b}=a;return"Dragging was cancelled. Draggable item "+b.id+" was dropped."}};function ab(a){var b;let c,{announcements:d=aa,container:e,hiddenTextDescribedById:f,screenReaderInstructions:g=_}=a,{announce:h,announcement:i}=function(){let[a,b]=(0,x.useState)("");return{announce:(0,x.useCallback)(a=>{null!=a&&b(a)},[]),announcement:a}}(),j=P("DndLiveRegion"),[k,l]=(0,x.useState)(!1);if((0,x.useEffect)(()=>{l(!0)},[]),b=(0,x.useMemo)(()=>({onDragStart(a){let{active:b}=a;h(d.onDragStart({active:b}))},onDragMove(a){let{active:b,over:c}=a;d.onDragMove&&h(d.onDragMove({active:b,over:c}))},onDragOver(a){let{active:b,over:c}=a;h(d.onDragOver({active:b,over:c}))},onDragEnd(a){let{active:b,over:c}=a;h(d.onDragEnd({active:b,over:c}))},onDragCancel(a){let{active:b,over:c}=a;h(d.onDragCancel({active:b,over:c}))}}),[h,d]),c=(0,x.useContext)($),(0,x.useEffect)(()=>{if(!c)throw Error("useDndMonitor must be used within a children of <DndContext>");return c(b)},[b,c]),!k)return null;let m=y().createElement(y().Fragment,null,y().createElement(Y,{id:f,value:g.draggable}),y().createElement(Z,{id:j,announcement:i}));return e?(0,z.createPortal)(m,e):m}function ac(){}function ad(a,b){return(0,x.useMemo)(()=>({sensor:a,options:null!=b?b:{}}),[a,b])}(d=m||(m={})).DragStart="dragStart",d.DragMove="dragMove",d.DragEnd="dragEnd",d.DragCancel="dragCancel",d.DragOver="dragOver",d.RegisterDroppable="registerDroppable",d.SetDroppableDisabled="setDroppableDisabled",d.UnregisterDroppable="unregisterDroppable";let ae=Object.freeze({x:0,y:0});function af(a,b){return Math.sqrt(Math.pow(a.x-b.x,2)+Math.pow(a.y-b.y,2))}function ag(a,b){let{data:{value:c}}=a,{data:{value:d}}=b;return c-d}function ah(a,b){let{data:{value:c}}=a,{data:{value:d}}=b;return d-c}function ai(a){let{left:b,top:c,height:d,width:e}=a;return[{x:b,y:c},{x:b+e,y:c},{x:b,y:c+d},{x:b+e,y:c+d}]}function aj(a,b){if(!a||0===a.length)return null;let[c]=a;return b?c[b]:c}function ak(a,b,c){return void 0===b&&(b=a.left),void 0===c&&(c=a.top),{x:b+.5*a.width,y:c+.5*a.height}}let al=a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=ak(b,b.left,b.top),f=[];for(let a of d){let{id:b}=a,d=c.get(b);if(d){let c=af(ak(d),e);f.push({id:b,data:{droppableContainer:a,value:c}})}}return f.sort(ag)},am=a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=[];for(let a of d){let{id:d}=a,f=c.get(d);if(f){let c=function(a,b){let c=Math.max(b.top,a.top),d=Math.max(b.left,a.left),e=Math.min(b.left+b.width,a.left+a.width),f=Math.min(b.top+b.height,a.top+a.height);if(d<e&&c<f){let g=b.width*b.height,h=a.width*a.height,i=(e-d)*(f-c);return Number((i/(g+h-i)).toFixed(4))}return 0}(f,b);c>0&&e.push({id:d,data:{droppableContainer:a,value:c}})}}return e.sort(ah)};function an(a,b){return a&&b?{x:a.left-b.left,y:a.top-b.top}:ae}let ao=function(a){for(var b=arguments.length,c=Array(b>1?b-1:0),d=1;d<b;d++)c[d-1]=arguments[d];return c.reduce((a,b)=>({...a,top:a.top+ +b.y,bottom:a.bottom+ +b.y,left:a.left+ +b.x,right:a.right+ +b.x}),{...a})},ap={ignoreTransform:!1};function aq(a,b){void 0===b&&(b=ap);let c=a.getBoundingClientRect();if(b.ignoreTransform){let{transform:b,transformOrigin:d}=D(a).getComputedStyle(a);b&&(c=function(a,b,c){let d=function(a){if(a.startsWith("matrix3d(")){let b=a.slice(9,-1).split(/, /);return{x:+b[12],y:+b[13],scaleX:+b[0],scaleY:+b[5]}}if(a.startsWith("matrix(")){let b=a.slice(7,-1).split(/, /);return{x:+b[4],y:+b[5],scaleX:+b[0],scaleY:+b[3]}}return null}(b);if(!d)return a;let{scaleX:e,scaleY:f,x:g,y:h}=d,i=a.left-g-(1-e)*parseFloat(c),j=a.top-h-(1-f)*parseFloat(c.slice(c.indexOf(" ")+1)),k=e?a.width/e:a.width,l=f?a.height/f:a.height;return{width:k,height:l,top:j,right:i+k,bottom:j+l,left:i}}(c,b,d))}let{top:d,left:e,width:f,height:g,bottom:h,right:i}=c;return{top:d,left:e,width:f,height:g,bottom:h,right:i}}function ar(a){return aq(a,{ignoreTransform:!0})}function as(a,b){let c=[];return a?function d(e){var f,g;let h;if(null!=b&&c.length>=b||!e)return c;if(E(e)&&null!=e.scrollingElement&&!c.includes(e.scrollingElement))return c.push(e.scrollingElement),c;if(!F(e)||G(e)||c.includes(e))return c;let i=D(a).getComputedStyle(e);return(e!==a&&(void 0===(f=i)&&(f=D(e).getComputedStyle(e)),h=/(auto|scroll|overlay)/,["overflow","overflowX","overflowY"].some(a=>{let b=f[a];return"string"==typeof b&&h.test(b)}))&&c.push(e),void 0===(g=i)&&(g=D(e).getComputedStyle(e)),"fixed"===g.position)?c:d(e.parentNode)}(a):c}function at(a){let[b]=as(a,1);return null!=b?b:null}function au(a){return A&&a?B(a)?a:C(a)?E(a)||a===H(a).scrollingElement?window:F(a)?a:null:null:null}function av(a){return B(a)?a.scrollX:a.scrollLeft}function aw(a){return B(a)?a.scrollY:a.scrollTop}function ax(a){return{x:av(a),y:aw(a)}}function ay(a){return!!A&&!!a&&a===document.scrollingElement}function az(a){let b={x:0,y:0},c=ay(a)?{height:window.innerHeight,width:window.innerWidth}:{height:a.clientHeight,width:a.clientWidth},d={x:a.scrollWidth-c.width,y:a.scrollHeight-c.height},e=a.scrollTop<=b.y,f=a.scrollLeft<=b.x;return{isTop:e,isLeft:f,isBottom:a.scrollTop>=d.y,isRight:a.scrollLeft>=d.x,maxScroll:d,minScroll:b}}(e=n||(n={}))[e.Forward=1]="Forward",e[e.Backward=-1]="Backward";let aA={x:.2,y:.2};function aB(a){return a.reduce((a,b)=>R(a,ax(b)),ae)}let aC=[["x",["left","right"],function(a){return a.reduce((a,b)=>a+av(b),0)}],["y",["top","bottom"],function(a){return a.reduce((a,b)=>a+aw(b),0)}]];class aD{constructor(a,b){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const c=as(b),d=aB(c);for(const[b,e,f]of(this.rect={...a},this.width=a.width,this.height=a.height,aC))for(const a of e)Object.defineProperty(this,a,{get:()=>{let e=f(c),g=d[b]-e;return this.rect[a]+g},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class aE{constructor(a){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(a=>{var b;return null==(b=this.target)?void 0:b.removeEventListener(...a)})},this.target=a}add(a,b,c){var d;null==(d=this.target)||d.addEventListener(a,b,c),this.listeners.push([a,b,c])}}function aF(a,b){let c=Math.abs(a.x),d=Math.abs(a.y);return"number"==typeof b?Math.sqrt(c**2+d**2)>b:"x"in b&&"y"in b?c>b.x&&d>b.y:"x"in b?c>b.x:"y"in b&&d>b.y}function aG(a){a.preventDefault()}function aH(a){a.stopPropagation()}(f=o||(o={})).Click="click",f.DragStart="dragstart",f.Keydown="keydown",f.ContextMenu="contextmenu",f.Resize="resize",f.SelectionChange="selectionchange",f.VisibilityChange="visibilitychange",(g=p||(p={})).Space="Space",g.Down="ArrowDown",g.Right="ArrowRight",g.Left="ArrowLeft",g.Up="ArrowUp",g.Esc="Escape",g.Enter="Enter",g.Tab="Tab";let aI={start:[p.Space,p.Enter],cancel:[p.Esc],end:[p.Space,p.Enter,p.Tab]},aJ=(a,b)=>{let{currentCoordinates:c}=b;switch(a.code){case p.Right:return{...c,x:c.x+25};case p.Left:return{...c,x:c.x-25};case p.Down:return{...c,y:c.y+25};case p.Up:return{...c,y:c.y-25}}};class aK{constructor(a){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=a;const{event:{target:b}}=a;this.props=a,this.listeners=new aE(H(b)),this.windowListeners=new aE(D(b)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(o.Resize,this.handleCancel),this.windowListeners.add(o.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(o.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:a,onStart:b}=this.props,c=a.node.current;c&&function(a,b){if(void 0===b&&(b=aq),!a)return;let{top:c,left:d,bottom:e,right:f}=b(a);at(a)&&(e<=0||f<=0||c>=window.innerHeight||d>=window.innerWidth)&&a.scrollIntoView({block:"center",inline:"center"})}(c),b(ae)}handleKeyDown(a){if(T(a)){let{active:b,context:c,options:d}=this.props,{keyboardCodes:e=aI,coordinateGetter:f=aJ,scrollBehavior:g="smooth"}=d,{code:h}=a;if(e.end.includes(h))return void this.handleEnd(a);if(e.cancel.includes(h))return void this.handleCancel(a);let{collisionRect:i}=c.current,j=i?{x:i.left,y:i.top}:ae;this.referenceCoordinates||(this.referenceCoordinates=j);let k=f(a,{active:b,context:c.current,currentCoordinates:j});if(k){let b=S(k,j),d={x:0,y:0},{scrollableAncestors:e}=c.current;for(let c of e){let e=a.code,{isTop:f,isRight:h,isLeft:i,isBottom:j,maxScroll:l,minScroll:m}=az(c),n=function(a){if(a===document.scrollingElement){let{innerWidth:a,innerHeight:b}=window;return{top:0,left:0,right:a,bottom:b,width:a,height:b}}let{top:b,left:c,right:d,bottom:e}=a.getBoundingClientRect();return{top:b,left:c,right:d,bottom:e,width:a.clientWidth,height:a.clientHeight}}(c),o={x:Math.min(e===p.Right?n.right-n.width/2:n.right,Math.max(e===p.Right?n.left:n.left+n.width/2,k.x)),y:Math.min(e===p.Down?n.bottom-n.height/2:n.bottom,Math.max(e===p.Down?n.top:n.top+n.height/2,k.y))},q=e===p.Right&&!h||e===p.Left&&!i,r=e===p.Down&&!j||e===p.Up&&!f;if(q&&o.x!==k.x){let a=c.scrollLeft+b.x,f=e===p.Right&&a<=l.x||e===p.Left&&a>=m.x;if(f&&!b.y)return void c.scrollTo({left:a,behavior:g});f?d.x=c.scrollLeft-a:d.x=e===p.Right?c.scrollLeft-l.x:c.scrollLeft-m.x,d.x&&c.scrollBy({left:-d.x,behavior:g});break}if(r&&o.y!==k.y){let a=c.scrollTop+b.y,f=e===p.Down&&a<=l.y||e===p.Up&&a>=m.y;if(f&&!b.x)return void c.scrollTo({top:a,behavior:g});f?d.y=c.scrollTop-a:d.y=e===p.Down?c.scrollTop-l.y:c.scrollTop-m.y,d.y&&c.scrollBy({top:-d.y,behavior:g});break}}this.handleMove(a,R(S(k,this.referenceCoordinates),d))}}}handleMove(a,b){let{onMove:c}=this.props;a.preventDefault(),c(b)}handleEnd(a){let{onEnd:b}=this.props;a.preventDefault(),this.detach(),b()}handleCancel(a){let{onCancel:b}=this.props;a.preventDefault(),this.detach(),b()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function aL(a){return!!(a&&"distance"in a)}function aM(a){return!!(a&&"delay"in a)}aK.activators=[{eventName:"onKeyDown",handler:(a,b,c)=>{let{keyboardCodes:d=aI,onActivation:e}=b,{active:f}=c,{code:g}=a.nativeEvent;if(d.start.includes(g)){let b=f.activatorNode.current;return(!b||a.target===b)&&(a.preventDefault(),null==e||e({event:a.nativeEvent}),!0)}return!1}}];class aN{constructor(a,b,c){var d;void 0===c&&(c=function(a){let{EventTarget:b}=D(a);return a instanceof b?a:H(a)}(a.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=a,this.events=b;const{event:e}=a,{target:f}=e;this.props=a,this.events=b,this.document=H(f),this.documentListeners=new aE(this.document),this.listeners=new aE(c),this.windowListeners=new aE(D(f)),this.initialCoordinates=null!=(d=U(e))?d:ae,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:a,props:{options:{activationConstraint:b,bypassActivationConstraint:c}}}=this;if(this.listeners.add(a.move.name,this.handleMove,{passive:!1}),this.listeners.add(a.end.name,this.handleEnd),a.cancel&&this.listeners.add(a.cancel.name,this.handleCancel),this.windowListeners.add(o.Resize,this.handleCancel),this.windowListeners.add(o.DragStart,aG),this.windowListeners.add(o.VisibilityChange,this.handleCancel),this.windowListeners.add(o.ContextMenu,aG),this.documentListeners.add(o.Keydown,this.handleKeydown),b){if(null!=c&&c({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(aM(b)){this.timeoutId=setTimeout(this.handleStart,b.delay),this.handlePending(b);return}if(aL(b))return void this.handlePending(b)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(a,b){let{active:c,onPending:d}=this.props;d(c,a,this.initialCoordinates,b)}handleStart(){let{initialCoordinates:a}=this,{onStart:b}=this.props;a&&(this.activated=!0,this.documentListeners.add(o.Click,aH,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(o.SelectionChange,this.removeTextSelection),b(a))}handleMove(a){var b;let{activated:c,initialCoordinates:d,props:e}=this,{onMove:f,options:{activationConstraint:g}}=e;if(!d)return;let h=null!=(b=U(a))?b:ae,i=S(d,h);if(!c&&g){if(aL(g)){if(null!=g.tolerance&&aF(i,g.tolerance))return this.handleCancel();if(aF(i,g.distance))return this.handleStart()}return aM(g)&&aF(i,g.tolerance)?this.handleCancel():void this.handlePending(g,i)}a.cancelable&&a.preventDefault(),f(h)}handleEnd(){let{onAbort:a,onEnd:b}=this.props;this.detach(),this.activated||a(this.props.active),b()}handleCancel(){let{onAbort:a,onCancel:b}=this.props;this.detach(),this.activated||a(this.props.active),b()}handleKeydown(a){a.code===p.Esc&&this.handleCancel()}removeTextSelection(){var a;null==(a=this.document.getSelection())||a.removeAllRanges()}}let aO={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class aP extends aN{constructor(a){const{event:b}=a;super(a,aO,H(b.target))}}aP.activators=[{eventName:"onPointerDown",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b;return!!c.isPrimary&&0===c.button&&(null==d||d({event:c}),!0)}}];let aQ={move:{name:"mousemove"},end:{name:"mouseup"}};(h=q||(q={}))[h.RightClick=2]="RightClick";class aR extends aN{constructor(a){super(a,aQ,H(a.event.target))}}aR.activators=[{eventName:"onMouseDown",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b;return c.button!==q.RightClick&&(null==d||d({event:c}),!0)}}];let aS={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class aT extends aN{constructor(a){super(a,aS)}static setup(){return window.addEventListener(aS.move.name,a,{capture:!1,passive:!1}),function(){window.removeEventListener(aS.move.name,a)};function a(){}}}aT.activators=[{eventName:"onTouchStart",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b,{touches:e}=c;return!(e.length>1)&&(null==d||d({event:c}),!0)}}],(i=r||(r={}))[i.Pointer=0]="Pointer",i[i.DraggableRect=1]="DraggableRect",(j=s||(s={}))[j.TreeOrder=0]="TreeOrder",j[j.ReversedTreeOrder=1]="ReversedTreeOrder";let aU={x:{[n.Backward]:!1,[n.Forward]:!1},y:{[n.Backward]:!1,[n.Forward]:!1}};(k=t||(t={}))[k.Always=0]="Always",k[k.BeforeDragging=1]="BeforeDragging",k[k.WhileDragging=2]="WhileDragging",(u||(u={})).Optimized="optimized";let aV=new Map;function aW(a,b){return L(c=>a?c||("function"==typeof b?b(a):a):null,[b,a])}function aX(a){let{callback:b,disabled:c}=a,d=J(b),e=(0,x.useMemo)(()=>{if(c||"u"<typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:a}=window;return new a(d)},[c]);return(0,x.useEffect)(()=>()=>null==e?void 0:e.disconnect(),[e]),e}function aY(a){return new aD(aq(a),a)}function aZ(a,b,c){void 0===b&&(b=aY);let[d,e]=(0,x.useState)(null);function f(){e(d=>{if(!a)return null;if(!1===a.isConnected){var e;return null!=(e=null!=d?d:c)?e:null}let f=b(a);return JSON.stringify(d)===JSON.stringify(f)?d:f})}let g=function(a){let{callback:b,disabled:c}=a,d=J(b),e=(0,x.useMemo)(()=>{if(c||"u"<typeof window||void 0===window.MutationObserver)return;let{MutationObserver:a}=window;return new a(d)},[d,c]);return(0,x.useEffect)(()=>()=>null==e?void 0:e.disconnect(),[e]),e}({callback(b){if(a)for(let c of b){let{type:b,target:d}=c;if("childList"===b&&d instanceof HTMLElement&&d.contains(a)){f();break}}}}),h=aX({callback:f});return I(()=>{f(),a?(null==h||h.observe(a),null==g||g.observe(document.body,{childList:!0,subtree:!0})):(null==h||h.disconnect(),null==g||g.disconnect())},[a]),d}let a$=[];function a_(a,b){void 0===b&&(b=[]);let c=(0,x.useRef)(null);return(0,x.useEffect)(()=>{c.current=null},b),(0,x.useEffect)(()=>{let b=a!==ae;b&&!c.current&&(c.current=a),!b&&c.current&&(c.current=null)},[a]),c.current?S(a,c.current):ae}function a0(a){return(0,x.useMemo)(()=>{let b,c;return a?(b=a.innerWidth,{top:0,left:0,right:b,bottom:c=a.innerHeight,width:b,height:c}):null},[a])}let a1=[],a2=[{sensor:aP,options:{}},{sensor:aK,options:{}}],a3={current:{}},a4={draggable:{measure:ar},droppable:{measure:ar,strategy:t.WhileDragging,frequency:u.Optimized},dragOverlay:{measure:aq}};class a5 extends Map{get(a){var b;return null!=a&&null!=(b=super.get(a))?b:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(a=>{let{disabled:b}=a;return!b})}getNodeFor(a){var b,c;return null!=(b=null==(c=this.get(a))?void 0:c.node.current)?b:void 0}}let a6={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new a5,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:ac},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:a4,measureDroppableContainers:ac,windowRect:null,measuringScheduled:!1},a7={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:ac,draggableNodes:new Map,over:null,measureDroppableContainers:ac},a8=(0,x.createContext)(a7),a9=(0,x.createContext)(a6);function ba(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new a5}}}function bb(a,b){switch(b.type){case m.DragStart:return{...a,draggable:{...a.draggable,initialCoordinates:b.initialCoordinates,active:b.active}};case m.DragMove:if(null==a.draggable.active)return a;return{...a,draggable:{...a.draggable,translate:{x:b.coordinates.x-a.draggable.initialCoordinates.x,y:b.coordinates.y-a.draggable.initialCoordinates.y}}};case m.DragEnd:case m.DragCancel:return{...a,draggable:{...a.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case m.RegisterDroppable:{let{element:c}=b,{id:d}=c,e=new a5(a.droppable.containers);return e.set(d,c),{...a,droppable:{...a.droppable,containers:e}}}case m.SetDroppableDisabled:{let{id:c,key:d,disabled:e}=b,f=a.droppable.containers.get(c);if(!f||d!==f.key)return a;let g=new a5(a.droppable.containers);return g.set(c,{...f,disabled:e}),{...a,droppable:{...a.droppable,containers:g}}}case m.UnregisterDroppable:{let{id:c,key:d}=b,e=a.droppable.containers.get(c);if(!e||d!==e.key)return a;let f=new a5(a.droppable.containers);return f.delete(c),{...a,droppable:{...a.droppable,containers:f}}}default:return a}}function bc(a){let{disabled:b}=a,{active:c,activatorEvent:d,draggableNodes:e}=(0,x.useContext)(a8),f=N(d),g=N(null==c?void 0:c.id);return(0,x.useEffect)(()=>{if(!b&&!d&&f&&null!=g){if(!T(f)||document.activeElement===f.target)return;let a=e.get(g);if(!a)return;let{activatorNode:b,node:c}=a;(b.current||c.current)&&requestAnimationFrame(()=>{for(let a of[b.current,c.current]){if(!a)continue;let b=a.matches(W)?a:a.querySelector(W);if(b){b.focus();break}}})}},[d,b,e,g,f]),null}let bd=(0,x.createContext)({...ae,scaleX:1,scaleY:1});(l=v||(v={}))[l.Uninitialized=0]="Uninitialized",l[l.Initializing=1]="Initializing",l[l.Initialized=2]="Initialized";let be=(0,x.memo)(function(a){var b,c,d,e,f,g,h,i;let j,k,l,o,p,q,u,w,{id:B,accessibility:C,autoScroll:E=!0,children:G,sensors:H=a2,collisionDetection:J=am,measuring:O,modifiers:Q,...S}=a,[T,V]=(0,x.useReducer)(bb,void 0,ba),[W,X]=function(){let[a]=(0,x.useState)(()=>new Set),b=(0,x.useCallback)(b=>(a.add(b),()=>a.delete(b)),[a]);return[(0,x.useCallback)(b=>{let{type:c,event:d}=b;a.forEach(a=>{var b;return null==(b=a[c])?void 0:b.call(a,d)})},[a]),b]}(),[Y,Z]=(0,x.useState)(v.Uninitialized),_=Y===v.Initialized,{draggable:{active:aa,nodes:ac,translate:ad},droppable:{containers:af}}=T,ag=null!=aa?ac.get(aa):null,ah=(0,x.useRef)({initial:null,translated:null}),ai=(0,x.useMemo)(()=>{var a;return null!=aa?{id:aa,data:null!=(a=null==ag?void 0:ag.data)?a:a3,rect:ah}:null},[aa,ag]),ak=(0,x.useRef)(null),[al,ap]=(0,x.useState)(null),[ar,av]=(0,x.useState)(null),aw=K(S,Object.values(S)),aC=P("DndDescribedBy",B),aE=(0,x.useMemo)(()=>af.getEnabled(),[af]),aF=(0,x.useMemo)(()=>({draggable:{...a4.draggable,...null==O?void 0:O.draggable},droppable:{...a4.droppable,...null==O?void 0:O.droppable},dragOverlay:{...a4.dragOverlay,...null==O?void 0:O.dragOverlay}}),[null==O?void 0:O.draggable,null==O?void 0:O.droppable,null==O?void 0:O.dragOverlay]),{droppableRects:aG,measureDroppableContainers:aH,measuringScheduled:aI}=function(a,b){let{dragging:c,dependencies:d,config:e}=b,[f,g]=(0,x.useState)(null),{frequency:h,measure:i,strategy:j}=e,k=(0,x.useRef)(a),l=function(){switch(j){case t.Always:return!1;case t.BeforeDragging:return c;default:return!c}}(),m=K(l),n=(0,x.useCallback)(function(a){void 0===a&&(a=[]),m.current||g(b=>null===b?a:b.concat(a.filter(a=>!b.includes(a))))},[m]),o=(0,x.useRef)(null),p=L(b=>{if(l&&!c)return aV;if(!b||b===aV||k.current!==a||null!=f){let b=new Map;for(let c of a){if(!c)continue;if(f&&f.length>0&&!f.includes(c.id)&&c.rect.current){b.set(c.id,c.rect.current);continue}let a=c.node.current,d=a?new aD(i(a),a):null;c.rect.current=d,d&&b.set(c.id,d)}return b}return b},[a,f,c,l,i]);return(0,x.useEffect)(()=>{k.current=a},[a]),(0,x.useEffect)(()=>{l||n()},[c,l]),(0,x.useEffect)(()=>{f&&f.length>0&&g(null)},[JSON.stringify(f)]),(0,x.useEffect)(()=>{l||"number"!=typeof h||null!==o.current||(o.current=setTimeout(()=>{n(),o.current=null},h))},[h,l,n,...d]),{droppableRects:p,measureDroppableContainers:n,measuringScheduled:null!=f}}(aE,{dragging:_,dependencies:[ad.x,ad.y],config:aF.droppable}),aJ=L(a=>{var b;return null==aa?null:null!=(b=null!=p?p:a)?b:null},[p=(o=null!=aa?ac.get(aa):void 0)?o.node.current:null,aa]),aK=(0,x.useMemo)(()=>ar?U(ar):null,[ar]),aL=(j=(null==al?void 0:al.autoScrollEnabled)===!1,k="object"==typeof E?!1===E.enabled:!1===E,l=_&&!j&&!k,"object"==typeof E?{...E,enabled:l}:{enabled:l}),aM=aW(aJ,aF.draggable.measure);!function(a){let{activeNode:b,measure:c,initialRect:d,config:e=!0}=a,f=(0,x.useRef)(!1),{x:g,y:h}="boolean"==typeof e?{x:e,y:e}:e;I(()=>{if(!g&&!h||!b){f.current=!1;return}if(f.current||!d)return;let a=null==b?void 0:b.node.current;if(!a||!1===a.isConnected)return;let e=an(c(a),d);if(g||(e.x=0),h||(e.y=0),f.current=!0,Math.abs(e.x)>0||Math.abs(e.y)>0){let b=at(a);b&&b.scrollBy({top:e.y,left:e.x})}},[b,g,h,d,c])}({activeNode:null!=aa?ac.get(aa):null,config:aL.layoutShiftCompensation,initialRect:aM,measure:aF.draggable.measure});let aN=aZ(aJ,aF.draggable.measure,aM),aO=aZ(aJ?aJ.parentElement:null),aP=(0,x.useRef)({activatorEvent:null,active:null,activeNode:aJ,collisionRect:null,collisions:null,droppableRects:aG,draggableNodes:ac,draggingNode:null,draggingNodeRect:null,droppableContainers:af,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),aQ=af.getNodeFor(null==(b=aP.current.over)?void 0:b.id),aR=function(a){let{measure:b}=a,[c,d]=(0,x.useState)(null),e=aX({callback:(0,x.useCallback)(a=>{for(let{target:c}of a)if(F(c)){d(a=>{let d=b(c);return a?{...a,width:d.width,height:d.height}:d});break}},[b])}),[f,g]=M((0,x.useCallback)(a=>{let c=function(a){if(!a)return null;if(a.children.length>1)return a;let b=a.children[0];return F(b)?b:a}(a);null==e||e.disconnect(),c&&(null==e||e.observe(c)),d(c?b(c):null)},[b,e]));return(0,x.useMemo)(()=>({nodeRef:f,rect:c,setRef:g}),[c,f,g])}({measure:aF.dragOverlay.measure}),aS=null!=(c=aR.nodeRef.current)?c:aJ,aT=_?null!=(d=aR.rect)?d:aN:null,aY=!!(aR.nodeRef.current&&aR.rect),a5=(q=aW(f=aY?null:aN),an(f,q)),a6=a0(aS?D(aS):null),a7=(g=_?null!=aQ?aQ:aJ:null,u=(0,x.useRef)(g),w=L(a=>g?a&&a!==a$&&g&&u.current&&g.parentNode===u.current.parentNode?a:as(g):a$,[g]),(0,x.useEffect)(()=>{u.current=g},[g]),w),be=function(a,b){void 0===b&&(b=aq);let[c]=a,d=a0(c?D(c):null),[e,f]=(0,x.useState)(a1);function g(){f(()=>a.length?a.map(a=>ay(a)?d:new aD(b(a),a)):a1)}let h=aX({callback:g});return I(()=>{null==h||h.disconnect(),g(),a.forEach(a=>null==h?void 0:h.observe(a))},[a]),e}(a7),bf=function(a,b){let{transform:c,...d}=b;return null!=a&&a.length?a.reduce((a,b)=>b({transform:a,...d}),c):c}(Q,{transform:{x:ad.x-a5.x,y:ad.y-a5.y,scaleX:1,scaleY:1},activatorEvent:ar,active:ai,activeNodeRect:aN,containerNodeRect:aO,draggingNodeRect:aT,over:aP.current.over,overlayNodeRect:aR.rect,scrollableAncestors:a7,scrollableAncestorRects:be,windowRect:a6}),bg=aK?R(aK,ad):null,bh=function(a){let[b,c]=(0,x.useState)(null),d=(0,x.useRef)(a),e=(0,x.useCallback)(a=>{let b=au(a.target);b&&c(a=>a?(a.set(b,ax(b)),new Map(a)):null)},[]);return(0,x.useEffect)(()=>{let b=d.current;if(a!==b){f(b);let g=a.map(a=>{let b=au(a);return b?(b.addEventListener("scroll",e,{passive:!0}),[b,ax(b)]):null}).filter(a=>null!=a);c(g.length?new Map(g):null),d.current=a}return()=>{f(a),f(b)};function f(a){a.forEach(a=>{let b=au(a);null==b||b.removeEventListener("scroll",e)})}},[e,a]),(0,x.useMemo)(()=>a.length?b?Array.from(b.values()).reduce((a,b)=>R(a,b),ae):aB(a):ae,[a,b])}(a7),bi=a_(bh),bj=a_(bh,[aN]),bk=R(bf,bi),bl=aT?ao(aT,bf):null,bm=ai&&bl?J({active:ai,collisionRect:bl,droppableRects:aG,droppableContainers:aE,pointerCoordinates:bg}):null,bn=aj(bm,"id"),[bo,bp]=(0,x.useState)(null),bq=(h=aY?bf:R(bf,bj),i=null!=(e=null==bo?void 0:bo.rect)?e:null,{...h,scaleX:i&&aN?i.width/aN.width:1,scaleY:i&&aN?i.height/aN.height:1}),br=(0,x.useRef)(null),bs=(0,x.useCallback)((a,b)=>{let{sensor:c,options:d}=b;if(null==ak.current)return;let e=ac.get(ak.current);if(!e)return;let f=a.nativeEvent,g=new c({active:ak.current,activeNode:e,event:f,options:d,context:aP,onAbort(a){if(!ac.get(a))return;let{onDragAbort:b}=aw.current,c={id:a};null==b||b(c),W({type:"onDragAbort",event:c})},onPending(a,b,c,d){if(!ac.get(a))return;let{onDragPending:e}=aw.current,f={id:a,constraint:b,initialCoordinates:c,offset:d};null==e||e(f),W({type:"onDragPending",event:f})},onStart(a){let b=ak.current;if(null==b)return;let c=ac.get(b);if(!c)return;let{onDragStart:d}=aw.current,e={activatorEvent:f,active:{id:b,data:c.data,rect:ah}};(0,z.unstable_batchedUpdates)(()=>{null==d||d(e),Z(v.Initializing),V({type:m.DragStart,initialCoordinates:a,active:b}),W({type:"onDragStart",event:e}),ap(br.current),av(f)})},onMove(a){V({type:m.DragMove,coordinates:a})},onEnd:h(m.DragEnd),onCancel:h(m.DragCancel)});function h(a){return async function(){let{active:b,collisions:c,over:d,scrollAdjustedTranslate:e}=aP.current,g=null;if(b&&e){let{cancelDrop:h}=aw.current;g={activatorEvent:f,active:b,collisions:c,delta:e,over:d},a===m.DragEnd&&"function"==typeof h&&await Promise.resolve(h(g))&&(a=m.DragCancel)}ak.current=null,(0,z.unstable_batchedUpdates)(()=>{V({type:a}),Z(v.Uninitialized),bp(null),ap(null),av(null),br.current=null;let b=a===m.DragEnd?"onDragEnd":"onDragCancel";if(g){let a=aw.current[b];null==a||a(g),W({type:b,event:g})}})}}br.current=g},[ac]),bt=(0,x.useCallback)((a,b)=>(c,d)=>{let e=c.nativeEvent,f=ac.get(d);null!==ak.current||!f||e.dndKit||e.defaultPrevented||!0===a(c,b.options,{active:f})&&(e.dndKit={capturedBy:b.sensor},ak.current=d,bs(c,b))},[ac,bs]),bu=(0,x.useMemo)(()=>H.reduce((a,b)=>{let{sensor:c}=b;return[...a,...c.activators.map(a=>({eventName:a.eventName,handler:bt(a.handler,b)}))]},[]),[H,bt]);(0,x.useEffect)(()=>{if(!A)return;let a=H.map(a=>{let{sensor:b}=a;return null==b.setup?void 0:b.setup()});return()=>{for(let b of a)null==b||b()}},H.map(a=>{let{sensor:b}=a;return b})),I(()=>{aN&&Y===v.Initializing&&Z(v.Initialized)},[aN,Y]),(0,x.useEffect)(()=>{let{onDragMove:a}=aw.current,{active:b,activatorEvent:c,collisions:d,over:e}=aP.current;if(!b||!c)return;let f={active:b,activatorEvent:c,collisions:d,delta:{x:bk.x,y:bk.y},over:e};(0,z.unstable_batchedUpdates)(()=>{null==a||a(f),W({type:"onDragMove",event:f})})},[bk.x,bk.y]),(0,x.useEffect)(()=>{let{active:a,activatorEvent:b,collisions:c,droppableContainers:d,scrollAdjustedTranslate:e}=aP.current;if(!a||null==ak.current||!b||!e)return;let{onDragOver:f}=aw.current,g=d.get(bn),h=g&&g.rect.current?{id:g.id,rect:g.rect.current,data:g.data,disabled:g.disabled}:null,i={active:a,activatorEvent:b,collisions:c,delta:{x:e.x,y:e.y},over:h};(0,z.unstable_batchedUpdates)(()=>{bp(h),null==f||f(i),W({type:"onDragOver",event:i})})},[bn]),I(()=>{aP.current={activatorEvent:ar,active:ai,activeNode:aJ,collisionRect:bl,collisions:bm,droppableRects:aG,draggableNodes:ac,draggingNode:aS,draggingNodeRect:aT,droppableContainers:af,over:bo,scrollableAncestors:a7,scrollAdjustedTranslate:bk},ah.current={initial:aT,translated:bl}},[ai,aJ,bm,bl,ac,aS,aT,aG,af,bo,a7,bk]),function(a){let b,{acceleration:c,activator:d=r.Pointer,canScroll:e,draggingRect:f,enabled:g,interval:h=5,order:i=s.TreeOrder,pointerCoordinates:j,scrollableAncestors:k,scrollableAncestorRects:l,delta:m,threshold:o}=a,p=function(a){let{delta:b,disabled:c}=a,d=N(b);return L(a=>{if(c||!d||!a)return aU;let e={x:Math.sign(b.x-d.x),y:Math.sign(b.y-d.y)};return{x:{[n.Backward]:a.x[n.Backward]||-1===e.x,[n.Forward]:a.x[n.Forward]||1===e.x},y:{[n.Backward]:a.y[n.Backward]||-1===e.y,[n.Forward]:a.y[n.Forward]||1===e.y}}},[c,b,d])}({delta:m,disabled:!g}),[q,t]=(b=(0,x.useRef)(null),[(0,x.useCallback)((a,c)=>{b.current=setInterval(a,c)},[]),(0,x.useCallback)(()=>{null!==b.current&&(clearInterval(b.current),b.current=null)},[])]),u=(0,x.useRef)({x:0,y:0}),v=(0,x.useRef)({x:0,y:0}),w=(0,x.useMemo)(()=>{switch(d){case r.Pointer:return j?{top:j.y,bottom:j.y,left:j.x,right:j.x}:null;case r.DraggableRect:return f}},[d,f,j]),y=(0,x.useRef)(null),z=(0,x.useCallback)(()=>{let a=y.current;if(!a)return;let b=u.current.x*v.current.x,c=u.current.y*v.current.y;a.scrollBy(b,c)},[]),A=(0,x.useMemo)(()=>i===s.TreeOrder?[...k].reverse():k,[i,k]);(0,x.useEffect)(()=>{if(!g||!k.length||!w)return void t();for(let a of A){if((null==e?void 0:e(a))===!1)continue;let b=l[k.indexOf(a)];if(!b)continue;let{direction:d,speed:f}=function(a,b,c,d,e){let{top:f,left:g,right:h,bottom:i}=c;void 0===d&&(d=10),void 0===e&&(e=aA);let{isTop:j,isBottom:k,isLeft:l,isRight:m}=az(a),o={x:0,y:0},p={x:0,y:0},q={height:b.height*e.y,width:b.width*e.x};return!j&&f<=b.top+q.height?(o.y=n.Backward,p.y=d*Math.abs((b.top+q.height-f)/q.height)):!k&&i>=b.bottom-q.height&&(o.y=n.Forward,p.y=d*Math.abs((b.bottom-q.height-i)/q.height)),!m&&h>=b.right-q.width?(o.x=n.Forward,p.x=d*Math.abs((b.right-q.width-h)/q.width)):!l&&g<=b.left+q.width&&(o.x=n.Backward,p.x=d*Math.abs((b.left+q.width-g)/q.width)),{direction:o,speed:p}}(a,b,w,c,o);for(let a of["x","y"])p[a][d[a]]||(f[a]=0,d[a]=0);if(f.x>0||f.y>0){t(),y.current=a,q(z,h),u.current=f,v.current=d;return}}u.current={x:0,y:0},v.current={x:0,y:0},t()},[c,z,e,t,g,h,JSON.stringify(w),JSON.stringify(p),q,k,A,l,JSON.stringify(o)])}({...aL,delta:ad,draggingRect:bl,pointerCoordinates:bg,scrollableAncestors:a7,scrollableAncestorRects:be});let bv=(0,x.useMemo)(()=>({active:ai,activeNode:aJ,activeNodeRect:aN,activatorEvent:ar,collisions:bm,containerNodeRect:aO,dragOverlay:aR,draggableNodes:ac,droppableContainers:af,droppableRects:aG,over:bo,measureDroppableContainers:aH,scrollableAncestors:a7,scrollableAncestorRects:be,measuringConfiguration:aF,measuringScheduled:aI,windowRect:a6}),[ai,aJ,aN,ar,bm,aO,aR,ac,af,aG,bo,aH,a7,be,aF,aI,a6]),bw=(0,x.useMemo)(()=>({activatorEvent:ar,activators:bu,active:ai,activeNodeRect:aN,ariaDescribedById:{draggable:aC},dispatch:V,draggableNodes:ac,over:bo,measureDroppableContainers:aH}),[ar,bu,ai,aN,V,aC,ac,bo,aH]);return y().createElement($.Provider,{value:X},y().createElement(a8.Provider,{value:bw},y().createElement(a9.Provider,{value:bv},y().createElement(bd.Provider,{value:bq},G)),y().createElement(bc,{disabled:(null==C?void 0:C.restoreFocus)===!1})),y().createElement(ab,{...C,hiddenTextDescribedById:aC}))}),bf=(0,x.createContext)(null),bg="button",bh={timeout:25};function bi(a,b,c){let d=a.slice();return d.splice(c<0?d.length+c:c,0,d.splice(b,1)[0]),d}function bj(a){return null!==a&&a>=0}let bk=a=>{let{rects:b,activeIndex:c,overIndex:d,index:e}=a,f=bi(b,d,c),g=b[e],h=f[e];return h&&g?{x:h.left-g.left,y:h.top-g.top,scaleX:h.width/g.width,scaleY:h.height/g.height}:null},bl={scaleX:1,scaleY:1},bm=a=>{var b,c,d,e;let f,g,h,{activeIndex:i,activeNodeRect:j,index:k,rects:l,overIndex:m}=a,n=null!=(b=l[i])?b:j;if(!n)return null;if(k===i){let a=l[m];return a?{x:0,y:i<m?a.top+a.height-(n.top+n.height):a.top-n.top,...bl}:null}let o=(c=l,d=k,e=i,f=c[d],g=c[d-1],h=c[d+1],f?e<d?g?f.top-(g.top+g.height):h?h.top-(f.top+f.height):0:h?h.top-(f.top+f.height):g?f.top-(g.top+g.height):0:0);return k>i&&k<=m?{x:0,y:-n.height-o,...bl}:k<i&&k>=m?{x:0,y:n.height+o,...bl}:{x:0,y:0,...bl}},bn="Sortable",bo=y().createContext({activeIndex:-1,containerId:bn,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:bk,disabled:{draggable:!1,droppable:!1}});function bp(a){let{children:b,id:c,items:d,strategy:e=bk,disabled:f=!1}=a,{active:g,dragOverlay:h,droppableRects:i,over:j,measureDroppableContainers:k}=(0,x.useContext)(a9),l=P(bn,c),m=null!==h.rect,n=(0,x.useMemo)(()=>d.map(a=>"object"==typeof a&&"id"in a?a.id:a),[d]),o=null!=g,p=g?n.indexOf(g.id):-1,q=j?n.indexOf(j.id):-1,r=(0,x.useRef)(n),s=!function(a,b){if(a===b)return!0;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}(n,r.current),t=-1!==q&&-1===p||s,u="boolean"==typeof f?{draggable:f,droppable:f}:f;I(()=>{s&&o&&k(n)},[s,n,o,k]),(0,x.useEffect)(()=>{r.current=n},[n]);let v=(0,x.useMemo)(()=>({activeIndex:p,containerId:l,disabled:u,disableTransforms:t,items:n,overIndex:q,useDragOverlay:m,sortedRects:n.reduce((a,b,c)=>{let d=i.get(b);return d&&(a[c]=d),a},Array(n.length)),strategy:e}),[p,l,u.draggable,u.droppable,t,n,q,i,m,e]);return y().createElement(bo.Provider,{value:v},b)}let bq=a=>{let{id:b,items:c,activeIndex:d,overIndex:e}=a;return bi(c,d,e).indexOf(b)},br=a=>{let{containerId:b,isSorting:c,wasDragging:d,index:e,items:f,newIndex:g,previousItems:h,previousContainerId:i,transition:j}=a;return!!j&&!!d&&(h===f||e!==g)&&(!!c||g!==e&&b===i)},bs={duration:200,easing:"ease"},bt="transform",bu=V.Transition.toString({property:bt,duration:0,easing:"linear"}),bv={roleDescription:"sortable"};function bw(a){if(!a)return!1;let b=a.data.current;return!!b&&"sortable"in b&&"object"==typeof b.sortable&&"containerId"in b.sortable&&"items"in b.sortable&&"index"in b.sortable}let bx=[p.Down,p.Right,p.Up,p.Left],by=(a,b)=>{let{context:{active:c,collisionRect:d,droppableRects:e,droppableContainers:f,over:g,scrollableAncestors:h}}=b;if(bx.includes(a.code)){if(a.preventDefault(),!c||!d)return;let b=[];f.getEnabled().forEach(c=>{if(!c||null!=c&&c.disabled)return;let f=e.get(c.id);if(f)switch(a.code){case p.Down:d.top<f.top&&b.push(c);break;case p.Up:d.top>f.top&&b.push(c);break;case p.Left:d.left>f.left&&b.push(c);break;case p.Right:d.left<f.left&&b.push(c)}});let k=(a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=ai(b),f=[];for(let a of d){let{id:b}=a,d=c.get(b);if(d){let c=ai(d),g=Number((e.reduce((a,b,d)=>a+af(c[d],b),0)/4).toFixed(4));f.push({id:b,data:{droppableContainer:a,value:g}})}}return f.sort(ag)})({active:c,collisionRect:d,droppableRects:e,droppableContainers:b,pointerCoordinates:null}),l=aj(k,"id");if(l===(null==g?void 0:g.id)&&k.length>1&&(l=k[1].id),null!=l){let a=f.get(c.id),b=f.get(l),g=b?e.get(b.id):null,k=null==b?void 0:b.node.current;if(k&&g&&a&&b){var i,j;let c=as(k).some((a,b)=>h[b]!==a),e=bz(a,b),f=(i=a,j=b,!!bw(i)&&!!bw(j)&&!!bz(i,j)&&i.data.current.sortable.index<j.data.current.sortable.index),l=c||!e?{x:0,y:0}:{x:f?d.width-g.width:0,y:f?d.height-g.height:0},m={x:g.left,y:g.top};return l.x&&l.y?m:S(m,l)}}}};function bz(a,b){return!!bw(a)&&!!bw(b)&&a.data.current.sortable.containerId===b.data.current.sortable.containerId}let bA=a=>{let b,{containerNodeRect:c,draggingNodeRect:d,transform:e}=a;return d&&c?(b={...e},d.top+e.y<=c.top?b.y=c.top-d.top:d.bottom+e.y>=c.top+c.height&&(b.y=c.top+c.height-d.bottom),d.left+e.x<=c.left?b.x=c.left-d.left:d.right+e.x>=c.left+c.width&&(b.x=c.left+c.width-d.right),b):e},bB=a=>{let{transform:b}=a;return{...b,x:0}};var bC=c(50412),bD=c(50377),bE=c(91431),bF=c(96919);let bG=/^[a-zA-Z0-9_.\-]+$/,bH=[{value:"global",label:"To\xe0n cục / h\xe0nh vi hiện tại",description:"Giữ h\xe0nh vi hiện tại: mọi request d\xf9ng chung v\xf2ng xoay combo to\xe0n cục."},{value:"client_ip",label:"IP client",description:"Giữ c\xf9ng model khởi đầu cho c\xf9ng IP client cho đến khi hết TTL."},{value:"client_session",label:"IP client + phi\xean chat",description:"Ph\xf9 hợp nhất cho c\xf4ng cụ chat. Giữ c\xf9ng model cho c\xf9ng m\xe1y v\xe0 c\xf9ng phi\xean chat."}],bI=[{value:"fallback",label:"Ưu ti\xean fallback",description:"Thử model trong combo theo đ\xfang thứ tự hiển thị, lỗi th\xec fallback."},{value:"round-robin",label:"Round Robin",description:"Lu\xe2n phi\xean model đang bật được thử đầu ti\xean. C\xe1c t\xf9y chọn giữ d\xednh b\xean dưới vẫn được \xe1p dụng."},{value:"least-latency",label:"Độ trễ thấp nhất",description:"Ưu ti\xean target c\xf3 điểm health/độ trễ tốt nhất. Hữu \xedch cho LAN Ollama."},{value:"p2c",label:"P2C",description:"Power of Two Choices: lấy mẫu hai target khỏe rồi chọn target \xedt bận hơn."}],bJ=[{card:"border-sky-100 bg-sky-50/55 dark:border-sky-400/15 dark:bg-sky-950/10",panel:"border-sky-100/80 bg-white/80 dark:border-sky-400/15 dark:bg-zinc-950/60"},{card:"border-slate-200 bg-slate-50/80 dark:border-slate-500/15 dark:bg-slate-900/35",panel:"border-slate-200/80 bg-white/80 dark:border-slate-500/15 dark:bg-zinc-950/60"},{card:"border-emerald-100 bg-emerald-50/45 dark:border-emerald-400/15 dark:bg-emerald-950/10",panel:"border-emerald-100/80 bg-white/80 dark:border-emerald-400/15 dark:bg-zinc-950/60"},{card:"border-violet-100 bg-violet-50/45 dark:border-violet-400/15 dark:bg-violet-950/10",panel:"border-violet-100/80 bg-white/80 dark:border-violet-400/15 dark:bg-zinc-950/60"}],bK=Object.freeze({temperature:.3,top_p:.95,presence_penalty:0,max_tokens:4096,reasoning_budget:0,thinkingMode:"off"}),bL=Object.freeze({temperature:.6,top_p:.95,presence_penalty:0,max_tokens:4096}),bM=Object.freeze({temperature:.7,top_p:.8,presence_penalty:0,max_tokens:4096}),bN=Object.freeze({think:"inheritThinkRequestOverrides",nothink:"inheritNoThinkRequestOverrides"}),bO=[{key:"temperature",label:"temp",min:0,max:2,step:.05},{key:"top_p",label:"top_p",min:.01,max:1,step:.01},{key:"presence_penalty",label:"presence_penalty",min:-2,max:2,step:.05},{key:"max_tokens",label:"max_tokens",min:1,max:262144,step:1}],bP=[{value:"inherit",label:"Theo request gốc",description:"Giữ nguy\xean request gốc, kh\xf4ng inject thinking."},{value:"off",label:"Tắt thinking",description:"Gửi chat_template_kwargs.enable_thinking = false."},{value:"on",label:"Bật thinking",description:"Gửi chat_template_kwargs.enable_thinking = true."}],bQ=[{value:"inherit",label:"Theo cấu h\xecnh hệ thống",description:"Sử dụng ch\xednh s\xe1ch lưu Prompt Logs chung của hệ thống."},{value:"enabled",label:"Lưu đầy đủ nội dung",description:"Cho ph\xe9p quản trị vi\xean xem lại to\xe0n bộ prompt v\xe0 phản hồi của c\xe1c request thuộc combo n\xe0y."},{value:"disabled",label:"Chỉ lưu thống k\xea",description:"Kh\xf4ng lưu nội dung hội thoại. Chỉ lưu metadata, model, provider, token, thời gian xử l\xfd v\xe0 c\xe1c thống k\xea vận h\xe0nh."}];function bR(a){return a&&"object"==typeof a&&!Array.isArray(a)}function bS(a,b){return Object.prototype.hasOwnProperty.call(a||{},b)}function bT(a,{min:b,max:c,precision:d=3}={}){if(null==a||""===a)return;let e=Number(a);if(Number.isFinite(e))return Number(Math.min(c,Math.max(b,e)).toFixed(d))}function bU(a,{min:b,max:c}={}){let d=bT(a,{min:b,max:c,precision:0});return void 0===d?void 0:Math.trunc(d)}function bV(a){let b=b$(a).toLowerCase();return"enabled"===b||"disabled"===b?b:"inherit"}let bW=["temperature","top_p","presence_penalty","max_tokens"];function bX(a={}){let b=bR(a)?a:{},c={};if(bS(b,"temperature")){let a=bT(b.temperature,{min:0,max:2});void 0!==a&&(c.temperature=a)}if(bS(b,"top_p")||bS(b,"topP")){let a=bT(b.top_p??b.topP,{min:.01,max:1});void 0!==a&&(c.top_p=a)}let d=b.presence_penalty??b.presencePenalty??b["presence-penalty"];if(bS(b,"presence_penalty")||bS(b,"presencePenalty")||bS(b,"presence-penalty")){let a=bT(d,{min:-2,max:2});void 0!==a&&(c.presence_penalty=a)}let e=b.max_tokens??b.maxTokens??b.max_token;if(bS(b,"max_tokens")||bS(b,"maxTokens")||bS(b,"max_token")){let a=bU(e,{min:1,max:262144});void 0!==a&&(c.max_tokens=a)}return c}function bY(a={}){let b=bR(a)?a:{},c={};if(bS(b,"temperature")){let a=bT(b.temperature,{min:0,max:2});void 0!==a&&(c.temperature=a)}if(bS(b,"top_p")){let a=bT(b.top_p,{min:.01,max:1});void 0!==a&&(c.top_p=a)}let d=b.presence_penalty??b.presencePenalty??b["presence-penalty"];if(bS(b,"presence_penalty")||bS(b,"presencePenalty")||bS(b,"presence-penalty")){let a=bT(d,{min:-2,max:2});void 0!==a&&(c.presence_penalty=a)}let e=b.max_tokens??b.maxTokens??b.max_token;if(bS(b,"max_tokens")||bS(b,"maxTokens")||bS(b,"max_token")){let a=bU(e,{min:1,max:262144});void 0!==a&&(c.max_tokens=a)}let f=b.reasoning_budget??b.reasoningBudget??b["reasoning-budget"];if(bS(b,"reasoning_budget")||bS(b,"reasoningBudget")||bS(b,"reasoning-budget")){let a=bU(f,{min:0,max:262144});void 0!==a&&(c.reasoning_budget=a)}let g=b.inheritThinkRequestOverrides??b.thinkRequestOverrides??b.thinkingOnRequestOverrides;if(bS(b,"inheritThinkRequestOverrides")||bS(b,"thinkRequestOverrides")||bS(b,"thinkingOnRequestOverrides")){let a=bX(g);Object.keys(a).length>0&&(c.inheritThinkRequestOverrides=a)}let h=b.inheritNoThinkRequestOverrides??b.noThinkRequestOverrides??b.thinkingOffRequestOverrides;if(bS(b,"inheritNoThinkRequestOverrides")||bS(b,"noThinkRequestOverrides")||bS(b,"thinkingOffRequestOverrides")){let a=bX(h);Object.keys(a).length>0&&(c.inheritNoThinkRequestOverrides=a)}let i=function(a){if(!0===a)return"on";if(!1===a)return"off";let b=b$(a).toLowerCase();return["on","true","1","enable","enabled"].includes(b)?"on":["off","false","0","disable","disabled"].includes(b)?"off":void 0}(b.thinkingMode??b.thinking);if(i&&(c.thinkingMode=i),"off"===c.thinkingMode&&delete c.reasoning_budget,!c.thinkingMode){let a=bX(c);if(Object.keys(a).length>0)for(let b of(c.inheritThinkRequestOverrides={...a,...c.inheritThinkRequestOverrides||{}},c.inheritNoThinkRequestOverrides={...a,...c.inheritNoThinkRequestOverrides||{}},bW))delete c[b]}return c}function bZ(a={}){let b=bX(a||{}),c=[];return void 0!==b.temperature&&c.push(`temp ${b.temperature}`),void 0!==b.top_p&&c.push(`top_p ${b.top_p}`),void 0!==b.presence_penalty&&c.push(`presence ${b.presence_penalty}`),void 0!==b.max_tokens&&c.push(`max ${b.max_tokens}`),c}function b$(a){return String(a||"").trim()}function b_(a={}){return Array.isArray(a.disabledModels)?[...new Set(a.disabledModels.map(a=>b$(a)).filter(Boolean))]:[]}function b0(a={}){let b=a.fallbackStrategy||"fallback";return{...a,fallbackStrategy:b,stickyScope:a.stickyScope||"global",stickyTtlMinutes:Number(a.stickyTtlMinutes||120),stickyFallbackToClientIp:!1!==a.stickyFallbackToClientIp,lanHealthEnabled:!1!==a.lanHealthEnabled,healthCheckPath:a.healthCheckPath||"/api/tags",healthCheckIntervalMs:Number(a.healthCheckIntervalMs||15e3),requiredTags:Array.isArray(a.requiredTags)?a.requiredTags:[],modelTagRules:a.modelTagRules||a.modelTags||a.tagRules||{},disabledModels:b_(a),requestOverrides:bY(a.requestOverrides||{}),contentLoggingMode:bV(a.contentLoggingMode)}}function b1(a={}){let b={...a};b.disabledModels=b_(a),"fallback"===(b.fallbackStrategy||"fallback")&&delete b.fallbackStrategy,b.disabledModels.length||delete b.disabledModels;let c=bV(b.contentLoggingMode);"inherit"===c?delete b.contentLoggingMode:b.contentLoggingMode=c,b.requiredTags?.length||delete b.requiredTags;let d=bY(b.requestOverrides||{});return Object.keys(d).length?b.requestOverrides=d:delete b.requestOverrides,b.modelTagRules&&0!==Object.keys(b.modelTagRules).length||delete b.modelTagRules,"/api/tags"===b.healthCheckPath&&delete b.healthCheckPath,15e3===Number(b.healthCheckIntervalMs)&&delete b.healthCheckIntervalMs,!0===b.lanHealthEnabled&&delete b.lanHealthEnabled,Object.keys(b).length?b:null}function b2(a){return Array.isArray(a)?`[${a.map(b2).join(",")}]`:a&&"object"==typeof a?`{${Object.keys(a).sort().map(b=>`${JSON.stringify(b)}:${b2(a[b])}`).join(",")}}`:JSON.stringify(void 0===a?null:a)}function b3(a=[]){return Array.isArray(a)?a.join(", "):String(a||"")}function b4(a=""){return String(a||"").split(/[\n,;]+/).map(a=>a.trim()).filter(Boolean)}function b5(a={}){return a&&"object"==typeof a?Object.entries(a).map(([a,b])=>`${a}: ${Array.isArray(b)?b.join(", "):String(b||"")}`).join("\n"):""}function b6(a){return"string"==typeof a?a:a&&"object"==typeof a&&(a.value||a.model||a.id)||""}function b7(a={}){let b=b$(a.provider);return b$(a.providerSpecificData?.prefix)||b$(a.prefix)||b$((0,bF.wG)(b))||b}function b8(a={}){return b$(a.email)||b$(a.accountName)||b$(a.displayName)||b$(a.name)||b$(a.providerSpecificData?.nodeName)||b$(a.id)}function b9(a){return a&&"object"==typeof a?b$(a.connectionId||a.connection_id):""}function ca(a){let b=b6(a),c=b9(a);return b?c?`${b}@@${c}`:b:""}function cb(a){return"string"==typeof a?a:a&&"object"==typeof a?b$(a.label)||b$(a.displayName)||b$(a.name)||b6(a):""}function cc(a){if(!a||"object"!=typeof a)return b6(a);let b=b6(a);return b?Object.fromEntries(Object.entries({model:b,connectionId:b9(a)||void 0,label:cb(a)||void 0,provider:b$(a.provider)||void 0,accountName:b$(a.accountName||a.account_name)||void 0,weight:Number(a.weight||0)>0?Number(a.weight):void 0}).filter(([,a])=>void 0!==a&&""!==a)):""}function cd(a,b=!0){let c=cc(a),d=ca(c);return{value:d,enabled:b,target:c,label:cb(c)||d,subtitle:function(a){if(!a||"object"!=typeof a)return"";let b=b9(a),c=b6(a);return b?`T\xe0i khoản cố định • ${b}${c?` • ${c}`:""}`:""}(c)}}function ce(a={}){return b$(a.defaultModel)||b$(a.providerSpecificData?.defaultModel)||b$(a.model)||""}function cf(a,b,c,d=""){let e=b$(c);!e||b.has(e)||(b.add(e),a.push({value:e,label:b$(d)||e}))}function cg(a={},b={}){let c=[],d=new Set,e=b$(a.provider),f=[...new Set([b7(a),b$((0,bF.wG)(e)),e].filter(Boolean))];for(let a of(0,bE.KC)(e)||[])a?.type&&"llm"!==a.type||cf(c,d,a.id,a.name||a.id);for(let[a,e]of Object.entries(b||{})){let b=b$(e),g=f.find(a=>a&&b.startsWith(`${a}/`));if(!g)continue;let h=b.slice(g.length+1);cf(c,d,h,a||h)}return cf(c,d,ce(a),"Model mặc định"),c}function ch(a={},{disabledModels:b=[],requestOverrides:c,contentLoggingMode:d}={}){let e={...a},f=[...new Set((b||[]).map(a=>b$(a)).filter(Boolean))];if(f.length>0?e.disabledModels=f:delete e.disabledModels,void 0!==c){let a=bY(c||{});Object.keys(a).length?e.requestOverrides=a:delete e.requestOverrides}if(void 0!==d){let a=bV(d);"inherit"===a?delete e.contentLoggingMode:e.contentLoggingMode=a}return b1(e)}function ci(){let[a,b]=(0,x.useState)([]),[c,d]=(0,x.useState)(!0),[e,f]=(0,x.useState)(!1),[g,h]=(0,x.useState)(null),[i,j]=(0,x.useState)([]),[k,l]=(0,x.useState)(!1),[m,n]=(0,x.useState)(!1),[o,p]=(0,x.useState)({}),[q,r]=(0,x.useState)(""),[s,t]=(0,x.useState)(null),{copied:u,copy:v}=(0,bD.C)(),y=async()=>{try{let a=await fetch("/api/dashboard/combos",{cache:"no-store"}),c=await a.json();a.ok&&(b(c.combos||[]),p(c.comboStrategies||{}))}catch(a){console.log("Error fetching combo data:",a)}finally{d(!1)}},z=async()=>{if(!k&&!m){n(!0);try{let a=await fetch("/api/providers",{cache:"no-store"}),b=await a.json();a.ok&&(j(b.connections||[]),l(!0))}catch(a){console.log("Error loading provider accounts:",a)}finally{n(!1)}}},A=async()=>{f(!0),z()},B=async a=>{h(a),z()},C=async a=>{let b=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategies:a})});if(!b.ok)throw Error(`Save combo strategies failed: ${b.status}`);p(a)},D=async a=>{let{disabledModels:b=[],requestOverrides:c,contentLoggingMode:d,...e}=a;try{let a=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(a.ok){let a=ch({},{disabledModels:b,requestOverrides:c,contentLoggingMode:d});a&&await C({...o,[e.name]:a}),await y(),r(e.name),f(!1)}else{let b=await a.json();alert(b.error||"Tạo combo thất bại")}}catch(a){console.log("Error creating combo:",a)}},E=async(a,b)=>{let{disabledModels:c=[],requestOverrides:d,contentLoggingMode:e,...f}=b,i=g?.name;try{let b=await fetch(`/api/combos/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)});if(b.ok){let a={...o};i&&i!==f.name&&a[i]&&(a[f.name]=a[i],delete a[i]);let b=ch(a[f.name]||{},{disabledModels:c,requestOverrides:d,contentLoggingMode:e});b?a[f.name]=b:delete a[f.name],await C(a),await y(),r(f.name),h(null)}else{let a=await b.json();alert(a.error||"Cập nhật combo thất bại")}}catch(a){console.log("Error updating combo:",a)}},F=async c=>{let d=a.find(a=>a.id===c);t({title:"X\xf3a combo",message:"Bạn c\xf3 chắc muốn x\xf3a combo n\xe0y?",onConfirm:async()=>{t(null);try{if((await fetch(`/api/combos/${c}`,{method:"DELETE"})).ok){if(d?.name&&o[d.name]){let a={...o};delete a[d.name],await C(a)}b(a=>{let b=a.filter(a=>a.id!==c);return d?.name===q&&r(b[0]?.name||""),b})}}catch(a){console.log("Error deleting combo:",a)}}})},G=async(a,b)=>{try{let c={...o},d=b1({...b0(c[a]),...b});return d?c[a]=d:delete c[a],await C(c),!0}catch(a){return console.log("Error updating combo routing settings:",a),!1}},H=a.find(a=>a.name===q)||a[0]||null,I=H?Math.max(0,a.findIndex(a=>a.id===H.id)):0;return c?(0,w.jsx)("div",{className:"grid gap-4",children:[1,2,3].map(a=>(0,w.jsx)("div",{className:"h-36 animate-pulse rounded-2xl border border-border bg-surface"},a))}):(0,w.jsxs)("div",{className:"space-y-6",children:[(0,w.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",children:[(0,w.jsxs)("div",{children:[(0,w.jsx)("h1",{className:"text-2xl font-bold text-text-main",children:"Combo model"}),(0,w.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tạo combo model với fallback, round-robin, độ trễ thấp nhất, P2C v\xe0 routing theo trạng th\xe1i health của LAN Ollama."})]}),(0,w.jsxs)("button",{type:"button",onClick:A,className:"inline-flex items-center justify-center gap-2 rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add"}),"Tạo combo"]})]}),0===a.length?(0,w.jsxs)("div",{className:"rounded-2xl border border-dashed border-border bg-surface p-12 text-center",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-4xl text-text-muted",children:"layers"}),(0,w.jsx)("h2",{className:"mt-3 text-lg font-semibold text-text-main",children:"Chưa c\xf3 combo n\xe0o"}),(0,w.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tạo combo model c\xf3 hỗ trợ fallback."}),(0,w.jsx)("button",{type:"button",onClick:A,className:"mt-4 rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90",children:"Tạo combo"})]}):(0,w.jsxs)("div",{className:"space-y-4",children:[(0,w.jsx)("div",{className:"rounded-2xl border border-border bg-surface/80 p-4 shadow-sm dark:bg-zinc-950/70",children:(0,w.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-end lg:justify-between",children:[(0,w.jsxs)("label",{className:"block min-w-0 flex-1",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-semibold uppercase tracking-wide text-text-muted",children:"Combo đang xem"}),(0,w.jsx)("select",{value:H?.name||"",onChange:a=>r(a.target.value),className:"w-full rounded-xl border border-border bg-white px-4 py-2.5 text-sm font-semibold text-text-main outline-none transition focus:border-primary dark:bg-zinc-900",children:a.map(a=>(0,w.jsxs)("option",{value:a.name,children:[a.name," • ",(a.models||[]).length," model"]},a.id))})]}),(0,w.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs text-text-muted",children:[(0,w.jsxs)("span",{className:"rounded-full bg-background px-3 py-1 dark:bg-zinc-900",children:["Tổng ",a.length," combo"]}),H?(0,w.jsxs)("span",{className:"rounded-full bg-primary/10 px-3 py-1 font-medium text-primary",children:["Đang hiển thị: ",H.name]}):null]})]})}),H?(0,w.jsx)(cj,{combo:H,comboIndex:I,copied:u,onCopy:v,onEdit:()=>B(H),onDelete:()=>F(H.id),comboStrategy:o[H.name]||{},onUpdateComboStrategy:a=>G(H.name,a)},H.id):null]}),(0,w.jsx)(cq,{isOpen:e,comboStrategy:{},onClose:()=>f(!1),onSave:D,activeProviders:i,providersLoading:m}),(0,w.jsx)(cq,{isOpen:!!g,combo:g,comboStrategy:o[g?.name]||{},onClose:()=>h(null),onSave:a=>E(g.id,a),activeProviders:i,providersLoading:m}),(0,w.jsx)(bC.uo,{isOpen:!!s,onClose:()=>t(null),onConfirm:s?.onConfirm,title:s?.title||"X\xe1c nhận",message:s?.message,variant:"danger"})]})}function cj({combo:a,comboIndex:b=0,copied:c,onCopy:d,onEdit:e,onDelete:f,comboStrategy:g={},onUpdateComboStrategy:h}){let[i,j]=(0,x.useState)({}),[k,l]=(0,x.useState)(!1),[m,n]=(0,x.useState)(""),o=b0(g||{}),p=b0({...g||{},...i}),q=!function(a={},b={}){return b2(b1(a)||{})===b2(b1(b)||{})}(p,o),r=p.fallbackStrategy||"fallback",s=bI.find(a=>a.value===r)||bI[0],t=p.stickyScope||"global",u=bH.find(a=>a.value===t)||bH[0],v=b_(g),y=bJ[b%bJ.length],[z,A]=(0,x.useState)(b3(p.requiredTags)),[B,C]=(0,x.useState)(b5(p.modelTagRules)),D=a=>{n(""),j(b=>({...b,...a}))},E=async()=>{if(!q||k)return;l(!0);let a=await h(i);(l(!1),!1===a)?n("Lưu thất bại, thử lại."):j({})};return(0,x.useEffect)(()=>{A(b3(p.requiredTags)),C(b5(p.modelTagRules))},[a.name,JSON.stringify(p.requiredTags||[]),JSON.stringify(p.modelTagRules||{})]),(0,w.jsxs)("div",{className:`rounded-2xl border p-5 shadow-sm transition-colors ${y.card}`,children:[(0,w.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[(0,w.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,w.jsxs)("div",{className:"flex items-center gap-2",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-primary",children:"layers"}),(0,w.jsx)("h3",{className:"truncate text-lg font-semibold text-text-main",children:a.name})]}),(0,w.jsxs)("p",{className:"mt-1 text-sm text-text-muted",children:[(a.models||[]).length," model đang bật",v.length>0?` • ${v.length} đ\xe3 tắt`:""]})]}),(0,w.jsxs)("div",{className:"flex items-center gap-1",children:[(0,w.jsx)(ck,{icon:c===`combo-${a.id}`?"check":"content_copy",title:"Copy t\xean combo",onClick:()=>d(a.name,`combo-${a.id}`)}),(0,w.jsx)(ck,{icon:"edit",title:"Chỉnh sửa",onClick:e}),(0,w.jsx)(ck,{icon:"delete",title:"X\xf3a",onClick:f,danger:!0})]})]}),(0,w.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[0===(a.models||[]).length?(0,w.jsx)("span",{className:"rounded-lg bg-background px-2 py-1 text-xs text-text-muted",children:"Chưa c\xf3 model đang bật"}):(a.models||[]).slice(0,5).map((a,b)=>(0,w.jsx)("span",{className:"rounded-lg bg-background px-2 py-1 font-mono text-xs text-text-main",children:cb(a)},`${ca(a)}-${b}`)),(a.models||[]).length>5&&(0,w.jsxs)("span",{className:"rounded-lg bg-background px-2 py-1 text-xs text-text-muted",children:["+",a.models.length-5," model nữa"]}),v.length>0&&(0,w.jsxs)("span",{className:"rounded-lg bg-red-500/10 px-2 py-1 text-xs text-red-500",children:[v.length," đ\xe3 tắt"]}),(function(a={}){let b=bY(a),c=[];if(void 0!==b.temperature&&c.push(`temp ${b.temperature}`),void 0!==b.top_p&&c.push(`top_p ${b.top_p}`),void 0!==b.presence_penalty&&c.push(`presence ${b.presence_penalty}`),void 0!==b.max_tokens&&c.push(`max ${b.max_tokens}`),void 0!==b.reasoning_budget&&c.push(`reasoning ${b.reasoning_budget}`),"off"===b.thinkingMode&&c.push("thinking off"),"on"===b.thinkingMode&&c.push("thinking on"),!b.thinkingMode){let a=bZ(b.inheritThinkRequestOverrides),d=bZ(b.inheritNoThinkRequestOverrides);a.length&&c.push(`think: ${a.join(", ")}`),d.length&&c.push(`nothink: ${d.join(", ")}`)}return c})(o.requestOverrides).map(a=>(0,w.jsx)("span",{className:"rounded-lg bg-primary/10 px-2 py-1 text-xs font-medium text-primary",children:a},a)),"inherit"!==o.contentLoggingMode?(0,w.jsxs)("span",{className:`rounded-lg px-2 py-1 text-xs font-medium ${"disabled"===o.contentLoggingMode?"bg-amber-500/10 text-amber-600":"bg-emerald-500/10 text-emerald-600"}`,children:["prompt logs ",o.contentLoggingMode]}):null]}),(0,w.jsxs)("div",{className:`mt-5 rounded-xl border p-4 ${y.panel}`,children:[(0,w.jsxs)("div",{className:"flex flex-col gap-3 md:flex-row md:items-center md:justify-between",children:[(0,w.jsxs)("div",{children:[(0,w.jsx)("h4",{className:"font-semibold text-text-main",children:"Chiến lược routing"}),(0,w.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:s.description})]}),(0,w.jsx)("select",{value:r,onChange:a=>D({fallbackStrategy:a.target.value}),className:"rounded-lg border border-border bg-surface px-3 py-2 text-sm text-text-main outline-none focus:border-primary",children:bI.map(a=>(0,w.jsx)("option",{value:a.value,children:a.label},a.value))})]}),(0,w.jsx)(cp,{value:p.requestOverrides||{},onChange:a=>D({requestOverrides:a}),compact:!0}),(0,w.jsx)(cm,{value:p.contentLoggingMode,onChange:a=>D({contentLoggingMode:a}),compact:!0}),("least-latency"===r||"p2c"===r)&&(0,w.jsxs)("div",{className:"mt-4 rounded-xl border border-primary/15 bg-surface p-3",children:[(0,w.jsxs)("label",{className:"flex items-start gap-2 text-sm text-text-muted",children:[(0,w.jsx)("input",{type:"checkbox",checked:!1!==p.lanHealthEnabled,onChange:a=>D({lanHealthEnabled:a.target.checked}),className:"mt-0.5 h-3.5 w-3.5 accent-primary"}),(0,w.jsxs)("span",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Routing theo trạng th\xe1i health LAN"}),(0,w.jsx)("span",{className:"mt-1 block text-xs",children:"D\xf9ng dữ liệu health v\xe0 circuit breaker khi xếp hạng target trong combo."})]})]}),(0,w.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-2",children:[(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Đường dẫn health"}),(0,w.jsx)("input",{value:p.healthCheckPath||"/api/tags",onChange:a=>D({healthCheckPath:a.target.value||"/api/tags"}),placeholder:"/api/tags",className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"})]}),(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Chu kỳ kiểm tra (ms)"}),(0,w.jsx)("input",{type:"number",min:"1000",value:p.healthCheckIntervalMs||15e3,onChange:a=>D({healthCheckIntervalMs:Number(a.target.value)||15e3}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary"})]})]}),(0,w.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-2",children:[(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Tag endpoint bắt buộc"}),(0,w.jsx)("input",{value:z,onChange:a=>A(a.target.value),onBlur:()=>D({requiredTags:b4(z)}),onKeyDown:a=>"Enter"===a.key&&a.currentTarget.blur(),placeholder:"gpu, vram:8gb",className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"}),(0,w.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"Mọi endpoint được route đều phải c\xf3 c\xe1c tag n\xe0y."})]}),(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Quy tắc tag theo model"}),(0,w.jsx)("textarea",{value:B,onChange:a=>C(a.target.value),onBlur:()=>D({modelTagRules:function(a=""){let b={};for(let c of String(a||"").split(/\n+/)){let a=c.trim();if(!a)continue;let d=a.indexOf(":");if(-1===d)continue;let e=a.slice(0,d).trim(),f=b4(a.slice(d+1));e&&f.length&&(b[e]=f)}return b}(B)}),placeholder:"qwen3:32b: gpu, vram:16gb\nqwen3:8b: model_support:qwen3:8b",rows:3,className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"})]})]})]}),"round-robin"===r&&(0,w.jsxs)("div",{className:"mt-4 rounded-xl border border-primary/15 bg-surface p-3",children:[(0,w.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,w.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold text-primary",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"sticky_note_2"}),"Round Robin giữ d\xednh"]}),(0,w.jsxs)("label",{className:"flex items-center gap-2 text-xs text-text-muted",children:[(0,w.jsx)("input",{type:"checkbox",checked:"round-robin"===r,onChange:a=>D({fallbackStrategy:a.target.checked?"round-robin":"fallback"}),className:"h-3.5 w-3.5 accent-primary"}),"Bật"]})]}),(0,w.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Chế độ giữ d\xednh"}),(0,w.jsx)("select",{value:t,onChange:a=>D({stickyScope:a.target.value}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary",children:bH.map(a=>(0,w.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,w.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:u.description})]}),(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"TTL giữ d\xednh (ph\xfat)"}),(0,w.jsx)("input",{type:"number",min:"1",value:p.stickyTtlMinutes||120,onChange:a=>D({stickyTtlMinutes:Number(a.target.value)||120}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary"})]})]}),(0,w.jsxs)("label",{className:"mt-3 flex items-start gap-2 text-xs text-text-muted",children:[(0,w.jsx)("input",{type:"checkbox",checked:!1!==p.stickyFallbackToClientIp,onChange:a=>D({stickyFallbackToClientIp:a.target.checked}),className:"mt-0.5 h-3.5 w-3.5 accent-primary"}),"Nếu thiếu chat session id, fallback về IP client thay v\xec xoay to\xe0n cục."]})]}),(0,w.jsxs)("div",{className:"mt-4 flex flex-col gap-2 border-t border-border pt-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,w.jsx)("span",{className:`text-xs ${m?"text-red-500":q?"text-amber-600":"text-text-muted"}`,children:m||(q?"C\xf3 thay đổi chưa lưu — chỉ \xe1p dụng sau khi bấm Lưu.":"Đang \xe1p dụng cho request mới.")}),(0,w.jsxs)("div",{className:"flex items-center gap-2",children:[(0,w.jsx)("button",{type:"button",onClick:()=>{n(""),j({})},disabled:!q||k,className:"rounded-lg border border-border px-3 py-1.5 text-sm font-medium text-text-muted transition hover:text-text-main disabled:opacity-40",children:"Ho\xe0n t\xe1c"}),(0,w.jsxs)("button",{type:"button",onClick:E,disabled:!q||k,className:"inline-flex items-center gap-1.5 rounded-lg bg-primary px-4 py-1.5 text-sm font-medium text-white transition hover:opacity-90 disabled:opacity-40",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"save"}),k?"Đang lưu…":"Lưu thay đổi"]})]})]})]})]})}function ck({icon:a,title:b,onClick:c,danger:d=!1}){return(0,w.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),c?.()},className:`rounded-lg p-2 transition ${d?"text-red-500 hover:bg-red-500/10":"text-text-muted hover:bg-background hover:text-primary"}`,title:b,"aria-label":b,children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:a})})}function cl({id:a,index:b,model:c,subtitle:d="",enabled:e,isFirst:f,isLast:g,onEdit:h,onMoveUp:i,onMoveDown:j,onRemove:k,onToggleEnabled:l}){let{attributes:n,listeners:o,setNodeRef:p,transform:q,isDragging:r}=function(a){var b,c,d,e;let{animateLayoutChanges:f=br,attributes:g,disabled:h,data:i,getNewIndex:j=bq,id:k,strategy:l,resizeObserverConfig:n,transition:o=bs}=a,{items:p,containerId:q,activeIndex:r,disabled:s,disableTransforms:t,sortedRects:u,overIndex:v,useDragOverlay:w,strategy:y}=(0,x.useContext)(bo),z=(b=h,c=s,"boolean"==typeof b?{draggable:b,droppable:!1}:{draggable:null!=(d=null==b?void 0:b.draggable)?d:c.draggable,droppable:null!=(e=null==b?void 0:b.droppable)?e:c.droppable}),A=p.indexOf(k),B=(0,x.useMemo)(()=>({sortable:{containerId:q,index:A,items:p},...i}),[q,i,A,p]),C=(0,x.useMemo)(()=>p.slice(p.indexOf(k)),[p,k]),{rect:D,node:E,isOver:F,setNodeRef:G}=function(a){let{data:b,disabled:c=!1,id:d,resizeObserverConfig:e}=a,f=P("Droppable"),{active:g,dispatch:h,over:i,measureDroppableContainers:j}=(0,x.useContext)(a8),k=(0,x.useRef)({disabled:c}),l=(0,x.useRef)(!1),n=(0,x.useRef)(null),o=(0,x.useRef)(null),{disabled:p,updateMeasurementsFor:q,timeout:r}={...bh,...e},s=K(null!=q?q:d),t=aX({callback:(0,x.useCallback)(()=>{if(!l.current){l.current=!0;return}null!=o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{j(Array.isArray(s.current)?s.current:[s.current]),o.current=null},r)},[r]),disabled:p||!g}),[u,v]=M((0,x.useCallback)((a,b)=>{t&&(b&&(t.unobserve(b),l.current=!1),a&&t.observe(a))},[t])),w=K(b);return(0,x.useEffect)(()=>{t&&u.current&&(t.disconnect(),l.current=!1,t.observe(u.current))},[u,t]),(0,x.useEffect)(()=>(h({type:m.RegisterDroppable,element:{id:d,key:f,disabled:c,node:u,rect:n,data:w}}),()=>h({type:m.UnregisterDroppable,key:f,id:d})),[d]),(0,x.useEffect)(()=>{c!==k.current.disabled&&(h({type:m.SetDroppableDisabled,id:d,key:f,disabled:c}),k.current.disabled=c)},[d,f,c,h]),{active:g,rect:n,isOver:(null==i?void 0:i.id)===d,node:u,over:i,setNodeRef:v}}({id:k,data:B,disabled:z.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...n}}),{active:H,activatorEvent:J,activeNodeRect:L,attributes:N,setNodeRef:O,listeners:Q,isDragging:R,over:S,setActivatorNodeRef:U,transform:W}=function(a){let{id:b,data:c,disabled:d=!1,attributes:e}=a,f=P("Draggable"),{activators:g,activatorEvent:h,active:i,activeNodeRect:j,ariaDescribedById:k,draggableNodes:l,over:m}=(0,x.useContext)(a8),{role:n=bg,roleDescription:o="draggable",tabIndex:p=0}=null!=e?e:{},q=(null==i?void 0:i.id)===b,r=(0,x.useContext)(q?bd:bf),[s,t]=M(),[u,v]=M(),w=(0,x.useMemo)(()=>g.reduce((a,c)=>{let{eventName:d,handler:e}=c;return a[d]=a=>{e(a,b)},a},{}),[g,b]),y=K(c);return I(()=>(l.set(b,{id:b,key:f,node:s,activatorNode:u,data:y}),()=>{let a=l.get(b);a&&a.key===f&&l.delete(b)}),[l,b]),{active:i,activatorEvent:h,activeNodeRect:j,attributes:(0,x.useMemo)(()=>({role:n,tabIndex:p,"aria-disabled":d,"aria-pressed":!!q&&n===bg||void 0,"aria-roledescription":o,"aria-describedby":k.draggable}),[d,n,p,q,o,k.draggable]),isDragging:q,listeners:d?void 0:w,node:s,over:m,setNodeRef:t,setActivatorNodeRef:v,transform:r}}({id:k,data:B,attributes:{...bv,...g},disabled:z.draggable}),X=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,x.useMemo)(()=>a=>{b.forEach(b=>b(a))},b)}(G,O),Y=!!H,Z=Y&&!t&&bj(r)&&bj(v),$=!w&&R,_=$&&Z?W:null,aa=Z?null!=_?_:(null!=l?l:y)({rects:u,activeNodeRect:L,activeIndex:r,overIndex:v,index:A}):null,ab=bj(r)&&bj(v)?j({id:k,items:p,activeIndex:r,overIndex:v}):A,ac=null==H?void 0:H.id,ad=(0,x.useRef)({activeId:ac,items:p,newIndex:ab,containerId:q}),ae=p!==ad.current.items,af=f({active:H,containerId:q,isDragging:R,isSorting:Y,id:k,index:A,items:p,newIndex:ad.current.newIndex,previousItems:ad.current.items,previousContainerId:ad.current.containerId,transition:o,wasDragging:null!=ad.current.activeId}),ag=function(a){let{disabled:b,index:c,node:d,rect:e}=a,[f,g]=(0,x.useState)(null),h=(0,x.useRef)(c);return I(()=>{if(!b&&c!==h.current&&d.current){let a=e.current;if(a){let b=aq(d.current,{ignoreTransform:!0}),c={x:a.left-b.left,y:a.top-b.top,scaleX:a.width/b.width,scaleY:a.height/b.height};(c.x||c.y)&&g(c)}}c!==h.current&&(h.current=c)},[b,c,d,e]),(0,x.useEffect)(()=>{f&&g(null)},[f]),f}({disabled:!af,index:A,node:E,rect:D});return(0,x.useEffect)(()=>{Y&&ad.current.newIndex!==ab&&(ad.current.newIndex=ab),q!==ad.current.containerId&&(ad.current.containerId=q),p!==ad.current.items&&(ad.current.items=p)},[Y,ab,q,p]),(0,x.useEffect)(()=>{if(ac===ad.current.activeId)return;if(ac&&!ad.current.activeId){ad.current.activeId=ac;return}let a=setTimeout(()=>{ad.current.activeId=ac},50);return()=>clearTimeout(a)},[ac]),{active:H,activeIndex:r,attributes:N,data:B,rect:D,index:A,newIndex:ab,items:p,isOver:F,isSorting:Y,isDragging:R,listeners:Q,node:E,overIndex:v,over:S,setNodeRef:X,setActivatorNodeRef:U,setDroppableNodeRef:G,setDraggableNodeRef:O,transform:null!=ag?ag:aa,transition:ag||ae&&ad.current.newIndex===A?bu:(!$||T(J))&&o&&(Y||af)?V.Transition.toString({...o,property:bt}):void 0}}({id:a}),s={transform:V.Transform.toString(q),opacity:r?.4:1,zIndex:r?999:void 0},[t,u]=(0,x.useState)(!1),[v,y]=(0,x.useState)(c),z=()=>{let a=v.trim();a&&a!==c?h(a):y(c),u(!1)};return(0,w.jsxs)("div",{ref:p,style:s,className:`flex items-center gap-3 rounded-xl border p-3 transition ${e?"border-border bg-background":"border-red-200 bg-red-50/70 opacity-75 dark:border-red-500/30 dark:bg-red-500/10"}`,children:[(0,w.jsx)("button",{type:"button",className:"cursor-grab text-text-muted active:cursor-grabbing",...n,...o,title:"K\xe9o để sắp xếp lại",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"drag_indicator"})}),(0,w.jsx)("span",{className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-semibold ${e?"bg-primary/10 text-primary":"bg-red-100 text-red-600 dark:bg-red-500/20 dark:text-red-300"}`,children:b+1}),t?(0,w.jsx)("input",{autoFocus:!0,value:v,onChange:a=>y(a.target.value),onBlur:z,onKeyDown:a=>{"Enter"===a.key&&z(),"Escape"===a.key&&(y(c),u(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-background px-2 py-1 font-mono text-xs text-text-main outline-none"}):(0,w.jsxs)("button",{type:"button",onClick:()=>u(!0),className:"min-w-0 flex-1 text-left",title:"Bấm để sửa model",children:[(0,w.jsx)("span",{className:`block truncate font-mono text-xs ${e?"text-text-main":"text-text-muted line-through"}`,children:c}),d?(0,w.jsx)("span",{className:"mt-0.5 block truncate text-[11px] text-text-muted",children:d}):null]}),(0,w.jsx)("button",{type:"button",onClick:l,className:`rounded-lg p-1.5 transition ${e?"text-green-600 hover:bg-green-500/10":"text-red-500 hover:bg-red-500/10"}`,title:e?"Tắt model trong combo":"Bật model trong combo",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:e?"toggle_on":"toggle_off"})}),(0,w.jsx)("button",{type:"button",onClick:i,disabled:f,className:"rounded-lg p-1.5 text-text-muted transition hover:bg-surface disabled:opacity-30",title:"Di chuyển l\xean",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"arrow_upward"})}),(0,w.jsx)("button",{type:"button",onClick:j,disabled:g,className:"rounded-lg p-1.5 text-text-muted transition hover:bg-surface disabled:opacity-30",title:"Di chuyển xuống",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"arrow_downward"})}),(0,w.jsx)("button",{type:"button",onClick:k,className:"rounded-lg p-1.5 text-red-500 transition hover:bg-red-500/10",title:"X\xf3a",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]})}function cm({value:a="inherit",onChange:b,compact:c=!1}){let d=bV(a),e=bQ.find(a=>a.value===d)||bQ[0];return(0,w.jsx)("div",{className:c?"mt-4 rounded-xl border border-amber-500/15 bg-surface p-3":"rounded-xl border border-amber-500/15 bg-amber-500/5 p-4",children:(0,w.jsxs)("div",{className:"grid gap-3 md:grid-cols-[minmax(0,1fr)_280px] md:items-center",children:[(0,w.jsxs)("div",{children:[(0,w.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px] text-amber-500",children:"manage_search"}),"Prompt Logs cho combo n\xe0y"]}),(0,w.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:e.description}),"disabled"===d?(0,w.jsx)("p",{className:"mt-1 text-[11px] font-medium text-amber-600",children:"Khi chạy request, Prompt Logs sẽ chỉ ghi metadata v\xe0 hiển thị [promptlogs disabled on this combo]."}):null]}),(0,w.jsx)("select",{value:d,onChange:a=>b?.(bV(a.target.value)),className:"w-full rounded-lg border border-border bg-surface px-3 py-2 text-sm text-text-main outline-none focus:border-primary",children:bQ.map(a=>(0,w.jsx)("option",{value:a.value,children:a.label},a.value))})]})})}function cn({icon:a,label:b,children:c,active:d,muted:e=!1,className:f=""}){return(0,w.jsxs)("label",{className:`rounded-lg border p-3 transition ${d?"border-primary/30 bg-background shadow-sm":"border-border bg-background/60"} ${f}`,children:[(0,w.jsxs)("span",{className:"mb-2 flex items-center justify-between gap-2 text-xs font-medium text-text-main",children:[(0,w.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,w.jsx)("span",{className:`material-symbols-outlined text-[16px] ${d?"text-primary":"text-text-muted"}`,children:a}),(0,w.jsx)("span",{className:"truncate",children:b})]}),c?.toggle]}),c?.control,c?.hint?(0,w.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:c.hint}):null]})}function co({icon:a,title:b,values:c={},defaults:d={},onToggleField:e,onChangeField:f,inputClass:g}){let h=Object.keys(c||{}).length>0;return(0,w.jsxs)("div",{className:`rounded-lg border p-2 transition ${h?"border-primary/30 bg-background":"border-border bg-background/60"}`,children:[(0,w.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 text-[11px] font-semibold text-text-main",children:[(0,w.jsx)("span",{className:`material-symbols-outlined text-[15px] ${h?"text-primary":"text-text-muted"}`,children:a}),(0,w.jsx)("span",{className:"truncate",children:b})]}),(0,w.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:bO.map(a=>{let b=c?.[a.key]!==void 0;return(0,w.jsxs)("label",{className:"space-y-1",children:[(0,w.jsxs)("span",{className:"flex items-center justify-between gap-1 text-[11px] font-medium text-text-main",children:[(0,w.jsx)("span",{className:"truncate",children:a.label}),(0,w.jsx)("input",{type:"checkbox",checked:b,onChange:b=>e?.(a.key,b.target.checked,d[a.key]),className:"h-3.5 w-3.5 accent-primary"})]}),(0,w.jsx)("input",{type:"number",min:a.min,max:a.max,step:a.step,disabled:!b,value:b?c[a.key]:d[a.key],onChange:b=>f?.(a.key,b.target.value),className:g})]},a.key)})})]})}function cp({value:a={},onChange:b,compact:c=!1}){let d=bY(a),e=void 0!==d.temperature,f=void 0!==d.top_p,g=void 0!==d.presence_penalty,h=void 0!==d.max_tokens,i=void 0!==d.reasoning_budget,j=d.thinkingMode||"inherit",k="inherit"!==j,l="off"===j,m=d.inheritThinkRequestOverrides||{},n=d.inheritNoThinkRequestOverrides||{},o=Object.keys(m).length>0||Object.keys(n).length>0,p=e||f||g||h||!k&&o,q=k||i,r=a=>{b?.(bY({...d,...a}))},s=(a,c,e)=>{if(!c){let c={...d};delete c[a],b?.(bY(c));return}r({[a]:e})},t=(a,b,c,e)=>{let f=bN[a],g={...d[f]||{}};if(!c){delete g[b],r({[f]:g});return}g[b]=e,r({[f]:bX(g)})},u=(a,b,c)=>{let e=bN[a];r({[e]:bX({...d[e]||{},[b]:c})})},v="w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary disabled:opacity-50";return(0,w.jsxs)("div",{className:c?"mt-4 rounded-xl border border-sky-500/15 bg-surface p-3":"rounded-xl border border-sky-500/15 bg-sky-500/5 p-4",children:[(0,w.jsxs)("div",{className:"mb-3 flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between",children:[(0,w.jsxs)("div",{children:[(0,w.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px] text-sky-500",children:"tune"}),"Tham số request Local endpoint"]}),(0,w.jsxs)("p",{className:"mt-1 text-xs text-text-muted",children:["Chỉ inject khi combo route 100% tới local endpoint: ",(0,w.jsx)("span",{className:"font-mono",children:"llama.cpp"}),", ",(0,w.jsx)("span",{className:"font-mono",children:"vLLM"})," hoặc ",(0,w.jsx)("span",{className:"font-mono",children:"Ollama"}),". Nếu combo mix local + cloud/provider kh\xe1c, BlueRouter bỏ qua block n\xe0y v\xe0 giữ nguy\xean request gốc."]})]}),!function(a={}){return Object.keys(bY(a)).length>0}(d)?(0,w.jsx)("span",{className:"inline-flex shrink-0 items-center rounded-full bg-background px-2 py-1 text-[11px] font-semibold text-text-muted",children:"Kh\xf4ng override"}):(0,w.jsx)("span",{className:"inline-flex shrink-0 items-center rounded-full bg-primary/10 px-2 py-1 text-[11px] font-semibold text-primary",children:"C\xf3 override"})]}),(0,w.jsxs)("div",{className:"grid gap-3 xl:grid-cols-2",children:[(0,w.jsxs)("div",{className:`rounded-xl border p-3 ${p?"border-primary/20 bg-primary/5":"border-border bg-background/40"}`,children:[(0,w.jsxs)("div",{className:"mb-3 flex items-center gap-2 text-xs font-semibold text-primary",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"graphic_eq"}),"Sampling ",(0,w.jsx)("span",{className:"font-normal text-text-muted",children:"(điều khiển lựa chọn token)"})]}),k?(0,w.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 2xl:grid-cols-3",children:[(0,w.jsx)(cn,{icon:"thermostat",label:"Temperature",active:e,children:{toggle:(0,w.jsx)("input",{type:"checkbox",checked:e,onChange:a=>s("temperature",a.target.checked,bK.temperature),className:"h-3.5 w-3.5 accent-primary"}),control:(0,w.jsx)("input",{type:"number",min:"0",max:"2",step:"0.05",disabled:!e,value:e?d.temperature:bK.temperature,onChange:a=>r({temperature:a.target.value}),className:v}),hint:"0 = ổn định, 2 = s\xe1ng tạo."}}),(0,w.jsx)(cn,{icon:"filter_alt",label:"top_p",active:f,children:{toggle:(0,w.jsx)("input",{type:"checkbox",checked:f,onChange:a=>s("top_p",a.target.checked,bK.top_p),className:"h-3.5 w-3.5 accent-primary"}),control:(0,w.jsx)("input",{type:"number",min:"0.01",max:"1",step:"0.01",disabled:!f,value:f?d.top_p:bK.top_p,onChange:a=>r({top_p:a.target.value}),className:v}),hint:"0.01–1.0; 0.9–0.95 thường hợp coder/chat."}}),(0,w.jsx)(cn,{icon:"repeat",label:"presence_penalty",active:g,children:{toggle:(0,w.jsx)("input",{type:"checkbox",checked:g,onChange:a=>s("presence_penalty",a.target.checked,bK.presence_penalty),className:"h-3.5 w-3.5 accent-primary"}),control:(0,w.jsx)("input",{type:"number",min:"-2",max:"2",step:"0.05",disabled:!g,value:g?d.presence_penalty:bK.presence_penalty,onChange:a=>r({presence_penalty:a.target.value}),className:v}),hint:"-2–2; coder thường để 0, chỉ tăng nhẹ nếu hay lặp."}}),(0,w.jsx)(cn,{icon:"output",label:"max_tokens",active:h,className:"sm:col-span-2 2xl:col-span-1",children:{toggle:(0,w.jsx)("input",{type:"checkbox",checked:h,onChange:a=>s("max_tokens",a.target.checked,bK.max_tokens),className:"h-3.5 w-3.5 accent-primary"}),control:(0,w.jsx)("input",{type:"number",min:"1",max:"262144",step:"1",disabled:!h,value:h?d.max_tokens:bK.max_tokens,onChange:a=>r({max_tokens:a.target.value}),className:v}),hint:"Giới hạn output cho request."}})]}):(0,w.jsxs)("div",{className:"space-y-2",children:[(0,w.jsxs)("div",{className:"grid gap-3 2xl:grid-cols-2",children:[(0,w.jsx)(co,{icon:"psychology",title:"Khi request bật thinking",values:m,defaults:bL,onToggleField:(a,b,c)=>t("think",a,b,c),onChangeField:(a,b)=>u("think",a,b),inputClass:v}),(0,w.jsx)(co,{icon:"bolt",title:"Khi request tắt thinking",values:n,defaults:bM,onToggleField:(a,b,c)=>t("nothink",a,b,c),onChangeField:(a,b)=>u("nothink",a,b),inputClass:v})]}),(0,w.jsx)("span",{className:"block text-[11px] text-text-muted",children:"Thinking đang theo request gốc n\xean mỗi nh\xe1nh c\xf3 bộ sampling ri\xeang, chọn theo đ\xfang cờ thinking client gửi l\xean. Request kh\xf4ng khai b\xe1o thinking t\xednh l\xe0 tắt. Field kh\xf4ng tick th\xec giữ nguy\xean gi\xe1 trị client gửi."})]})]}),(0,w.jsxs)("div",{className:`rounded-xl border p-3 ${q?"border-primary/20 bg-primary/5":"border-border bg-background/40"}`,children:[(0,w.jsxs)("div",{className:"mb-3 flex items-center gap-2 text-xs font-semibold text-primary",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"psychology"}),"Thinking ",(0,w.jsx)("span",{className:"font-normal text-text-muted",children:"(suy luận nội bộ)"})]}),(0,w.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,w.jsxs)("label",{className:`rounded-lg border p-3 transition ${k?"border-primary/30 bg-background shadow-sm":"border-border bg-background/60"}`,children:[(0,w.jsxs)("span",{className:"mb-2 flex items-center gap-1.5 text-xs font-medium text-text-main",children:[(0,w.jsx)("span",{className:`material-symbols-outlined text-[16px] ${k?"text-primary":"text-text-muted"}`,children:"psychology_alt"}),"Thinking"]}),(0,w.jsx)("select",{value:j,onChange:a=>(a=>{if("inherit"===a)return void r({thinkingMode:void 0});let c="on"===a?m:n;b?.(bY({...d,...c,inheritThinkRequestOverrides:{},inheritNoThinkRequestOverrides:{},thinkingMode:a}))})(a.target.value),className:"w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary",children:bP.map(a=>(0,w.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,w.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:bP.find(a=>a.value===j)?.description||bP[0].description})]}),(0,w.jsx)(cn,{icon:"account_balance_wallet",label:"reasoning_budget",active:i,className:l?"opacity-60":"",children:{toggle:(0,w.jsx)("input",{type:"checkbox",checked:i,disabled:l,onChange:a=>s("reasoning_budget",a.target.checked,bK.reasoning_budget),className:"h-3.5 w-3.5 accent-primary disabled:opacity-50"}),control:(0,w.jsx)("input",{type:"number",min:"0",max:"262144",step:"1",disabled:l||!i,value:i?d.reasoning_budget:bK.reasoning_budget,onChange:a=>r({reasoning_budget:a.target.value}),className:v}),hint:l?"Thinking đang tắt n\xean budget kh\xf4ng được gửi.":"Chỉ d\xf9ng cho llama.cpp/vLLM local; runtime sẽ map đ\xfang field."}})]})]})]})]})}function cq({isOpen:a,combo:b,comboStrategy:c={},onClose:d,onSave:e,activeProviders:f,providersLoading:g=!1,kindFilter:h=null}){let[i,j]=(0,x.useState)(b?.name||""),[k,l]=(0,x.useState)([]),[m,n]=(0,x.useState)(!1),[o,p]=(0,x.useState)(!1),[q,r]=(0,x.useState)(""),[s,t]=(0,x.useState)({}),[u,v]=(0,x.useState)(""),[y,z]=(0,x.useState)(""),[A,B]=(0,x.useState)(()=>b?bY(c?.requestOverrides||{}):bY(bK)),[C,D]=(0,x.useState)(()=>bV(c?.contentLoggingMode)),E=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,x.useMemo)(()=>[...b].filter(a=>null!=a),[...b])}(ad(aP,{activationConstraint:{distance:5}}),ad(aK,{coordinateGetter:by})),F=k.map((a,b)=>({uid:`item-${b}-${a.value}`,row:a})),G=k.map(a=>a.value),H=k.filter(a=>a.enabled).length,I=k.filter(a=>!a.enabled).length,J=(f||[]).filter(a=>a?.isActive!==!1),K=J.find(a=>a.id===u)||null,L=K?cg(K,s):[],M=L[0]?.value||(K?ce(K):""),N=a=>a.trim()?bG.test(a)?(r(""),!0):(r("Chỉ cho ph\xe9p chữ, số, dấu -, _ v\xe0 ."),!1):(r("Bắt buộc nhập t\xean"),!1),O=async()=>{if(!N(i))return;let{models:a,disabledModels:b}=function(a=[]){let b=[],c=new Set;for(let d of a){let a=b$(d?.value||ca(d?.target));!a||c.has(a)||(c.add(a),b.push({...d,value:a,enabled:d?.enabled!==!1,target:cc(d?.target||d?.value)}))}return{models:b.filter(a=>a.enabled).map(a=>a.target).filter(Boolean),disabledModels:b.filter(a=>!a.enabled).map(a=>a.value)}}(k);p(!0),await e({name:i.trim(),models:a,disabledModels:b,requestOverrides:bY(A),contentLoggingMode:C}),p(!1)};if(!a)return null;let P=!!b;return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/45 p-3 backdrop-blur-[1px] sm:p-4",children:(0,w.jsxs)("div",{className:"flex max-h-[92vh] w-full max-w-7xl flex-col overflow-hidden rounded-2xl border border-border bg-white shadow-2xl dark:bg-zinc-950",children:[(0,w.jsxs)("div",{className:"flex items-start justify-between border-b border-border px-5 py-4 sm:px-6",children:[(0,w.jsxs)("div",{children:[(0,w.jsx)("h2",{className:"text-xl font-semibold text-text-main",children:P?"Chỉnh sửa combo":"Tạo combo"}),(0,w.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Chọn model, tắt tạm thời khi cần v\xe0 sắp xếp thứ tự ưu ti\xean fallback đang bật."})]}),(0,w.jsx)("button",{type:"button",onClick:d,className:"rounded-lg p-1 text-text-muted transition hover:bg-surface hover:text-text-main",children:(0,w.jsx)("span",{className:"material-symbols-outlined",children:"close"})})]}),(0,w.jsxs)("div",{className:"min-h-0 flex-1 space-y-5 overflow-y-auto bg-white px-5 py-4 dark:bg-zinc-950 sm:px-6",children:[(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-2 block text-sm font-semibold text-text-main",children:"T\xean"}),(0,w.jsx)("input",{value:i,onChange:a=>{let b=a.target.value;j(b),b?N(b):r("")},placeholder:"premium-coding",className:`w-full rounded-xl border bg-white px-4 py-2.5 text-text-main outline-none transition focus:border-primary dark:bg-zinc-900 ${q?"border-red-400":"border-border"}`}),(0,w.jsx)("span",{className:`mt-1 block text-xs ${q?"text-red-500":"text-text-muted"}`,children:q||"Chỉ cho ph\xe9p chữ, số, dấu -, _ v\xe0 ."})]}),(0,w.jsx)(cp,{value:A,onChange:B,defaultEnabled:!P}),(0,w.jsx)(cm,{value:C,onChange:D}),(0,w.jsxs)("div",{children:[(0,w.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,w.jsxs)("div",{children:[(0,w.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"Danh s\xe1ch model"}),(0,w.jsxs)("p",{className:"mt-1 text-xs text-text-muted",children:[H," đang bật",I>0?`, ${I} đ\xe3 tắt`:"",". Model đ\xe3 tắt vẫn nằm trong combo nhưng kh\xf4ng được route."]})]}),(0,w.jsxs)("button",{type:"button",onClick:()=>n(!0),className:"inline-flex items-center gap-1 rounded-lg border border-border px-3 py-1.5 text-xs font-medium text-primary hover:border-primary/50",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add"}),"Th\xeam model"]})]}),(0,w.jsxs)("div",{className:"mb-4 rounded-xl border border-primary/15 bg-primary/5 p-3",children:[(0,w.jsxs)("div",{className:"mb-2 flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-primary",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"account_tree"}),"Th\xeam target theo provider account"]}),(0,w.jsx)("p",{className:"mb-3 text-xs text-text-muted",children:"Cố định bước combo n\xe0y v\xe0o một provider account cụ thể. Danh s\xe1ch account chỉ được load khi mở modal để trang combo nhẹ hơn."}),(0,w.jsxs)("div",{className:"grid gap-2 md:grid-cols-[minmax(0,1.5fr)_minmax(0,1fr)_auto]",children:[(0,w.jsxs)("select",{value:u,onChange:a=>{let b=a.target.value,c=J.find(a=>a.id===b),d=c?cg(c,s):[];v(b),z(d[0]?.value||ce(c||{})||"")},className:"min-w-0 rounded-lg border border-border bg-background px-3 py-2 text-xs text-text-main outline-none focus:border-primary",children:[(0,w.jsx)("option",{value:"",children:g?"Đang tải provider account...":"Chọn provider account"}),J.map(a=>{let b=b7(a),c=b8(a),d=c&&c!==b?`${b} / ${c}`:b;return(0,w.jsx)("option",{value:a.id,children:d},a.id)})]}),(0,w.jsxs)("select",{value:y,onChange:a=>z(a.target.value),disabled:!u||0===L.length,className:"min-w-0 rounded-lg border border-border bg-background px-3 py-2 font-mono text-xs text-text-main outline-none focus:border-primary disabled:cursor-not-allowed disabled:opacity-60",children:[(0,w.jsx)("option",{value:"",children:u?L.length>0?"Chọn model":"Kh\xf4ng t\xecm thấy model của provider":"Chọn account trước"}),L.map(a=>(0,w.jsx)("option",{value:a.value,children:a.label},`${a.value}-${a.label}`))]}),(0,w.jsxs)("button",{type:"button",onClick:()=>{if(!K)return;let a=function(a,b){let c=b7(a),d=function(a={}){let b=b$(a.provider),c=b7(a);return(0,bF.mq)(b)||(0,bF.gb)(b)?c||b:b||c}(a),e=b8(a),f=b$(b||ce(a));if(!c||!a?.id||!f)return null;let g=f.includes("/"),h=g?f:`${c}/${f}`,i=g&&f.startsWith(`${c}/`)?f.slice(c.length+1):f,j=e&&e!==d?`${d}/${e}/${i}`:`${d}/${i}`;return{model:h,connectionId:a.id,provider:d||c,accountName:e||void 0,label:j}}(K,y||M);if(!a)return void alert("H\xe3y chọn provider account v\xe0 model cho target cố định n\xe0y.");let b=cd(a,!0);l(a=>{let c=a.findIndex(a=>a.value===b.value);if(-1!==c){let d=[...a];return d[c]={...d[c],...b,enabled:!0},d}return[...a,b]}),z("")},disabled:!u||!y,className:"inline-flex items-center justify-center gap-1 rounded-lg bg-primary px-3 py-2 text-xs font-semibold text-white disabled:opacity-50",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add_link"}),"Th\xeam account"]})]})]}),0===k.length?(0,w.jsxs)("div",{className:"rounded-xl border border-dashed border-border p-8 text-center text-text-muted",children:[(0,w.jsx)("span",{className:"material-symbols-outlined",children:"layers"}),(0,w.jsx)("p",{className:"mt-2 text-sm",children:"Chưa th\xeam model n\xe0o"})]}):(0,w.jsx)(be,{sensors:E,collisionDetection:al,modifiers:[bB,bA],onDragEnd:a=>{let{active:b,over:c}=a;if(c&&b.id!==c.id){let a=F.findIndex(a=>a.uid===b.id),d=F.findIndex(a=>a.uid===c.id);-1!==a&&-1!==d&&l(b=>bi(b,a,d))}},children:(0,w.jsx)(bp,{items:F.map(a=>a.uid),strategy:bm,children:(0,w.jsx)("div",{className:"space-y-3",children:F.map(({uid:a,row:b},c)=>(0,w.jsx)(cl,{id:a,index:c,model:b.label||b.value,subtitle:b.subtitle,enabled:b.enabled,isFirst:0===c,isLast:c===k.length-1,onEdit:a=>{let b=a.trim();if(!b)return;let d=[...k],e=d[c];if(e?.target&&"object"==typeof e.target){let a=cc({...e.target,model:b});d[c]=cd(a,!1!==e.enabled)}else d[c]=cd(b,e?.enabled!==!1);l(d)},onMoveUp:()=>{if(0===c)return;let a=[...k];[a[c-1],a[c]]=[a[c],a[c-1]],l(a)},onMoveDown:()=>{if(c===k.length-1)return;let a=[...k];[a[c],a[c+1]]=[a[c+1],a[c]],l(a)},onToggleEnabled:()=>{let a=[...k];a[c]={...a[c],enabled:!a[c].enabled},l(a)},onRemove:()=>l(k.filter((a,b)=>b!==c))},a))})})})]})]}),(0,w.jsxs)("div",{className:"flex justify-end gap-3 border-t border-border bg-white px-5 py-4 dark:bg-zinc-950 sm:px-6",children:[(0,w.jsx)("button",{type:"button",onClick:d,className:"rounded-xl border border-border px-4 py-2 text-sm font-medium text-text-main hover:bg-surface",children:"Hủy"}),(0,w.jsx)("button",{type:"button",onClick:O,disabled:o,className:"rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90 disabled:opacity-50",children:o?"Đang lưu...":P?"Lưu":"Tạo"})]})]})}),(0,w.jsx)(bC.rq,{isOpen:m,onClose:()=>n(!1),onSelect:a=>{let b=a.value;l(a=>{let c=a.findIndex(a=>a.value===b);if(-1!==c){let b=[...a];return b[c]={...b[c],enabled:!0},b}return[...a,cd(b,!0)]})},onDeselect:a=>{l(b=>b.filter(b=>b.value!==a.value))},activeProviders:f,modelAliases:s,title:"Th\xeam model v\xe0o combo",kindFilter:h,addedModelValues:G,closeOnSelect:!1})]})}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19771:a=>{"use strict";a.exports=require("process")},20503:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(91488),g=c(20445),h=c(29294),i=c(43014);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},21820:a=>{"use strict";a.exports=require("os")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34631:a=>{"use strict";a.exports=require("tls")},35447:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"D:\\\\bluerouter\\\\src\\\\app\\\\(dashboard)\\\\dashboard\\\\combos\\\\page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\combos\\page.js","default")},38522:a=>{"use strict";a.exports=require("node:zlib")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41204:a=>{"use strict";a.exports=require("string_decoder")},43014:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ActionDidNotRevalidate:function(){return e},ActionDidRevalidateDynamicOnly:function(){return g},ActionDidRevalidateStaticAndDynamic:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=1,g=2},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46293:a=>{"use strict";a.exports=require("sql.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53048:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>w,handler:()=>y,routeModule:()=>x});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,32059))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,30508))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),t=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),u={children:["",{children:["(dashboard)",{children:["dashboard",{children:["combos",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,35447))),"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\combos\\page.js"]}]},{"global-error":[t,"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[s,"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[n,"D:\\bluerouter\\src\\app\\(dashboard)\\layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"D:\\bluerouter\\src\\app\\layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,v=(0,e.H)({tree:u,page:"/(dashboard)/dashboard/combos/page",pathname:"/dashboard/combos",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),w=v.__next_app__,x=v.routeModule,y=v.handler},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64939:a=>{"use strict";a.exports=import("pg")},66136:a=>{"use strict";a.exports=require("timers")},73024:a=>{"use strict";a.exports=require("node:fs")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},79428:a=>{"use strict";a.exports=require("buffer")},79748:a=>{"use strict";a.exports=require("fs/promises")},80099:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},89768:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(c(91986));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},91645:a=>{"use strict";a.exports=require("net")},92305:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestApiAllowedInCurrentPhase:function(){return k},throwForSearchParamsAccessInUseCache:function(){return j},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(19121),h=c(3295);function i(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function j(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function k(a){switch(a.phase){case"action":case"render":return!0;case"after":{let a=g.actionAsyncStorage.getStore();if(a&&(a.isAppRoute||a.isAction))return!0;let b=h.afterTaskAsyncStorage.getStore();if(b)return"action"===b.rootTaskSpawnPhase;return!1}}}},93443:(a,b,c)=>{Promise.resolve().then(c.bind(c,18513))},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,2430,8316,8946,402,5681,4404,6064,2428,8640],()=>b(b.s=53048));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=3649,a.ids=[3649],a.modules={1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17419:(a,b,c)=>{Promise.resolve().then(c.bind(c,35447))},18513:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>ci});var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w=c(48249),x=c(67484),y=c.n(x),z=c(74429);let A="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function B(a){let b=Object.prototype.toString.call(a);return"[object Window]"===b||"[object global]"===b}function C(a){return"nodeType"in a}function D(a){var b,c;return a?B(a)?a:C(a)&&null!=(b=null==(c=a.ownerDocument)?void 0:c.defaultView)?b:window:window}function E(a){let{Document:b}=D(a);return a instanceof b}function F(a){return!B(a)&&a instanceof D(a).HTMLElement}function G(a){return a instanceof D(a).SVGElement}function H(a){return a?B(a)?a.document:C(a)?E(a)?a:F(a)||G(a)?a.ownerDocument:document:document:document}let I=A?x.useLayoutEffect:x.useEffect;function J(a){let b=(0,x.useRef)(a);return I(()=>{b.current=a}),(0,x.useCallback)(function(){for(var a=arguments.length,c=Array(a),d=0;d<a;d++)c[d]=arguments[d];return null==b.current?void 0:b.current(...c)},[])}function K(a,b){void 0===b&&(b=[a]);let c=(0,x.useRef)(a);return I(()=>{c.current!==a&&(c.current=a)},b),c}function L(a,b){let c=(0,x.useRef)();return(0,x.useMemo)(()=>{let b=a(c.current);return c.current=b,b},[...b])}function M(a){let b=J(a),c=(0,x.useRef)(null),d=(0,x.useCallback)(a=>{a!==c.current&&(null==b||b(a,c.current)),c.current=a},[]);return[c,d]}function N(a){let b=(0,x.useRef)();return(0,x.useEffect)(()=>{b.current=a},[a]),b.current}let O={};function P(a,b){return(0,x.useMemo)(()=>{if(b)return b;let c=null==O[a]?0:O[a]+1;return O[a]=c,a+"-"+c},[a,b])}function Q(a){return function(b){for(var c=arguments.length,d=Array(c>1?c-1:0),e=1;e<c;e++)d[e-1]=arguments[e];return d.reduce((b,c)=>{for(let[d,e]of Object.entries(c)){let c=b[d];null!=c&&(b[d]=c+a*e)}return b},{...b})}}let R=Q(1),S=Q(-1);function T(a){if(!a)return!1;let{KeyboardEvent:b}=D(a.target);return b&&a instanceof b}function U(a){if(function(a){if(!a)return!1;let{TouchEvent:b}=D(a.target);return b&&a instanceof b}(a)){if(a.touches&&a.touches.length){let{clientX:b,clientY:c}=a.touches[0];return{x:b,y:c}}else if(a.changedTouches&&a.changedTouches.length){let{clientX:b,clientY:c}=a.changedTouches[0];return{x:b,y:c}}}return"clientX"in a&&"clientY"in a?{x:a.clientX,y:a.clientY}:null}let V=Object.freeze({Translate:{toString(a){if(!a)return;let{x:b,y:c}=a;return"translate3d("+(b?Math.round(b):0)+"px, "+(c?Math.round(c):0)+"px, 0)"}},Scale:{toString(a){if(!a)return;let{scaleX:b,scaleY:c}=a;return"scaleX("+b+") scaleY("+c+")"}},Transform:{toString(a){if(a)return[V.Translate.toString(a),V.Scale.toString(a)].join(" ")}},Transition:{toString(a){let{property:b,duration:c,easing:d}=a;return b+" "+c+"ms "+d}}}),W="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",X={display:"none"};function Y(a){let{id:b,value:c}=a;return y().createElement("div",{id:b,style:X},c)}function Z(a){let{id:b,announcement:c,ariaLiveType:d="assertive"}=a;return y().createElement("div",{id:b,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":d,"aria-atomic":!0},c)}let $=(0,x.createContext)(null),_={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},aa={onDragStart(a){let{active:b}=a;return"Picked up draggable item "+b.id+"."},onDragOver(a){let{active:b,over:c}=a;return c?"Draggable item "+b.id+" was moved over droppable area "+c.id+".":"Draggable item "+b.id+" is no longer over a droppable area."},onDragEnd(a){let{active:b,over:c}=a;return c?"Draggable item "+b.id+" was dropped over droppable area "+c.id:"Draggable item "+b.id+" was dropped."},onDragCancel(a){let{active:b}=a;return"Dragging was cancelled. Draggable item "+b.id+" was dropped."}};function ab(a){var b;let c,{announcements:d=aa,container:e,hiddenTextDescribedById:f,screenReaderInstructions:g=_}=a,{announce:h,announcement:i}=function(){let[a,b]=(0,x.useState)("");return{announce:(0,x.useCallback)(a=>{null!=a&&b(a)},[]),announcement:a}}(),j=P("DndLiveRegion"),[k,l]=(0,x.useState)(!1);if((0,x.useEffect)(()=>{l(!0)},[]),b=(0,x.useMemo)(()=>({onDragStart(a){let{active:b}=a;h(d.onDragStart({active:b}))},onDragMove(a){let{active:b,over:c}=a;d.onDragMove&&h(d.onDragMove({active:b,over:c}))},onDragOver(a){let{active:b,over:c}=a;h(d.onDragOver({active:b,over:c}))},onDragEnd(a){let{active:b,over:c}=a;h(d.onDragEnd({active:b,over:c}))},onDragCancel(a){let{active:b,over:c}=a;h(d.onDragCancel({active:b,over:c}))}}),[h,d]),c=(0,x.useContext)($),(0,x.useEffect)(()=>{if(!c)throw Error("useDndMonitor must be used within a children of <DndContext>");return c(b)},[b,c]),!k)return null;let m=y().createElement(y().Fragment,null,y().createElement(Y,{id:f,value:g.draggable}),y().createElement(Z,{id:j,announcement:i}));return e?(0,z.createPortal)(m,e):m}function ac(){}function ad(a,b){return(0,x.useMemo)(()=>({sensor:a,options:null!=b?b:{}}),[a,b])}(d=m||(m={})).DragStart="dragStart",d.DragMove="dragMove",d.DragEnd="dragEnd",d.DragCancel="dragCancel",d.DragOver="dragOver",d.RegisterDroppable="registerDroppable",d.SetDroppableDisabled="setDroppableDisabled",d.UnregisterDroppable="unregisterDroppable";let ae=Object.freeze({x:0,y:0});function af(a,b){return Math.sqrt(Math.pow(a.x-b.x,2)+Math.pow(a.y-b.y,2))}function ag(a,b){let{data:{value:c}}=a,{data:{value:d}}=b;return c-d}function ah(a,b){let{data:{value:c}}=a,{data:{value:d}}=b;return d-c}function ai(a){let{left:b,top:c,height:d,width:e}=a;return[{x:b,y:c},{x:b+e,y:c},{x:b,y:c+d},{x:b+e,y:c+d}]}function aj(a,b){if(!a||0===a.length)return null;let[c]=a;return b?c[b]:c}function ak(a,b,c){return void 0===b&&(b=a.left),void 0===c&&(c=a.top),{x:b+.5*a.width,y:c+.5*a.height}}let al=a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=ak(b,b.left,b.top),f=[];for(let a of d){let{id:b}=a,d=c.get(b);if(d){let c=af(ak(d),e);f.push({id:b,data:{droppableContainer:a,value:c}})}}return f.sort(ag)},am=a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=[];for(let a of d){let{id:d}=a,f=c.get(d);if(f){let c=function(a,b){let c=Math.max(b.top,a.top),d=Math.max(b.left,a.left),e=Math.min(b.left+b.width,a.left+a.width),f=Math.min(b.top+b.height,a.top+a.height);if(d<e&&c<f){let g=b.width*b.height,h=a.width*a.height,i=(e-d)*(f-c);return Number((i/(g+h-i)).toFixed(4))}return 0}(f,b);c>0&&e.push({id:d,data:{droppableContainer:a,value:c}})}}return e.sort(ah)};function an(a,b){return a&&b?{x:a.left-b.left,y:a.top-b.top}:ae}let ao=function(a){for(var b=arguments.length,c=Array(b>1?b-1:0),d=1;d<b;d++)c[d-1]=arguments[d];return c.reduce((a,b)=>({...a,top:a.top+ +b.y,bottom:a.bottom+ +b.y,left:a.left+ +b.x,right:a.right+ +b.x}),{...a})},ap={ignoreTransform:!1};function aq(a,b){void 0===b&&(b=ap);let c=a.getBoundingClientRect();if(b.ignoreTransform){let{transform:b,transformOrigin:d}=D(a).getComputedStyle(a);b&&(c=function(a,b,c){let d=function(a){if(a.startsWith("matrix3d(")){let b=a.slice(9,-1).split(/, /);return{x:+b[12],y:+b[13],scaleX:+b[0],scaleY:+b[5]}}if(a.startsWith("matrix(")){let b=a.slice(7,-1).split(/, /);return{x:+b[4],y:+b[5],scaleX:+b[0],scaleY:+b[3]}}return null}(b);if(!d)return a;let{scaleX:e,scaleY:f,x:g,y:h}=d,i=a.left-g-(1-e)*parseFloat(c),j=a.top-h-(1-f)*parseFloat(c.slice(c.indexOf(" ")+1)),k=e?a.width/e:a.width,l=f?a.height/f:a.height;return{width:k,height:l,top:j,right:i+k,bottom:j+l,left:i}}(c,b,d))}let{top:d,left:e,width:f,height:g,bottom:h,right:i}=c;return{top:d,left:e,width:f,height:g,bottom:h,right:i}}function ar(a){return aq(a,{ignoreTransform:!0})}function as(a,b){let c=[];return a?function d(e){var f,g;let h;if(null!=b&&c.length>=b||!e)return c;if(E(e)&&null!=e.scrollingElement&&!c.includes(e.scrollingElement))return c.push(e.scrollingElement),c;if(!F(e)||G(e)||c.includes(e))return c;let i=D(a).getComputedStyle(e);return(e!==a&&(void 0===(f=i)&&(f=D(e).getComputedStyle(e)),h=/(auto|scroll|overlay)/,["overflow","overflowX","overflowY"].some(a=>{let b=f[a];return"string"==typeof b&&h.test(b)}))&&c.push(e),void 0===(g=i)&&(g=D(e).getComputedStyle(e)),"fixed"===g.position)?c:d(e.parentNode)}(a):c}function at(a){let[b]=as(a,1);return null!=b?b:null}function au(a){return A&&a?B(a)?a:C(a)?E(a)||a===H(a).scrollingElement?window:F(a)?a:null:null:null}function av(a){return B(a)?a.scrollX:a.scrollLeft}function aw(a){return B(a)?a.scrollY:a.scrollTop}function ax(a){return{x:av(a),y:aw(a)}}function ay(a){return!!A&&!!a&&a===document.scrollingElement}function az(a){let b={x:0,y:0},c=ay(a)?{height:window.innerHeight,width:window.innerWidth}:{height:a.clientHeight,width:a.clientWidth},d={x:a.scrollWidth-c.width,y:a.scrollHeight-c.height},e=a.scrollTop<=b.y,f=a.scrollLeft<=b.x;return{isTop:e,isLeft:f,isBottom:a.scrollTop>=d.y,isRight:a.scrollLeft>=d.x,maxScroll:d,minScroll:b}}(e=n||(n={}))[e.Forward=1]="Forward",e[e.Backward=-1]="Backward";let aA={x:.2,y:.2};function aB(a){return a.reduce((a,b)=>R(a,ax(b)),ae)}let aC=[["x",["left","right"],function(a){return a.reduce((a,b)=>a+av(b),0)}],["y",["top","bottom"],function(a){return a.reduce((a,b)=>a+aw(b),0)}]];class aD{constructor(a,b){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const c=as(b),d=aB(c);for(const[b,e,f]of(this.rect={...a},this.width=a.width,this.height=a.height,aC))for(const a of e)Object.defineProperty(this,a,{get:()=>{let e=f(c),g=d[b]-e;return this.rect[a]+g},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class aE{constructor(a){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(a=>{var b;return null==(b=this.target)?void 0:b.removeEventListener(...a)})},this.target=a}add(a,b,c){var d;null==(d=this.target)||d.addEventListener(a,b,c),this.listeners.push([a,b,c])}}function aF(a,b){let c=Math.abs(a.x),d=Math.abs(a.y);return"number"==typeof b?Math.sqrt(c**2+d**2)>b:"x"in b&&"y"in b?c>b.x&&d>b.y:"x"in b?c>b.x:"y"in b&&d>b.y}function aG(a){a.preventDefault()}function aH(a){a.stopPropagation()}(f=o||(o={})).Click="click",f.DragStart="dragstart",f.Keydown="keydown",f.ContextMenu="contextmenu",f.Resize="resize",f.SelectionChange="selectionchange",f.VisibilityChange="visibilitychange",(g=p||(p={})).Space="Space",g.Down="ArrowDown",g.Right="ArrowRight",g.Left="ArrowLeft",g.Up="ArrowUp",g.Esc="Escape",g.Enter="Enter",g.Tab="Tab";let aI={start:[p.Space,p.Enter],cancel:[p.Esc],end:[p.Space,p.Enter,p.Tab]},aJ=(a,b)=>{let{currentCoordinates:c}=b;switch(a.code){case p.Right:return{...c,x:c.x+25};case p.Left:return{...c,x:c.x-25};case p.Down:return{...c,y:c.y+25};case p.Up:return{...c,y:c.y-25}}};class aK{constructor(a){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=a;const{event:{target:b}}=a;this.props=a,this.listeners=new aE(H(b)),this.windowListeners=new aE(D(b)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(o.Resize,this.handleCancel),this.windowListeners.add(o.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(o.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:a,onStart:b}=this.props,c=a.node.current;c&&function(a,b){if(void 0===b&&(b=aq),!a)return;let{top:c,left:d,bottom:e,right:f}=b(a);at(a)&&(e<=0||f<=0||c>=window.innerHeight||d>=window.innerWidth)&&a.scrollIntoView({block:"center",inline:"center"})}(c),b(ae)}handleKeyDown(a){if(T(a)){let{active:b,context:c,options:d}=this.props,{keyboardCodes:e=aI,coordinateGetter:f=aJ,scrollBehavior:g="smooth"}=d,{code:h}=a;if(e.end.includes(h))return void this.handleEnd(a);if(e.cancel.includes(h))return void this.handleCancel(a);let{collisionRect:i}=c.current,j=i?{x:i.left,y:i.top}:ae;this.referenceCoordinates||(this.referenceCoordinates=j);let k=f(a,{active:b,context:c.current,currentCoordinates:j});if(k){let b=S(k,j),d={x:0,y:0},{scrollableAncestors:e}=c.current;for(let c of e){let e=a.code,{isTop:f,isRight:h,isLeft:i,isBottom:j,maxScroll:l,minScroll:m}=az(c),n=function(a){if(a===document.scrollingElement){let{innerWidth:a,innerHeight:b}=window;return{top:0,left:0,right:a,bottom:b,width:a,height:b}}let{top:b,left:c,right:d,bottom:e}=a.getBoundingClientRect();return{top:b,left:c,right:d,bottom:e,width:a.clientWidth,height:a.clientHeight}}(c),o={x:Math.min(e===p.Right?n.right-n.width/2:n.right,Math.max(e===p.Right?n.left:n.left+n.width/2,k.x)),y:Math.min(e===p.Down?n.bottom-n.height/2:n.bottom,Math.max(e===p.Down?n.top:n.top+n.height/2,k.y))},q=e===p.Right&&!h||e===p.Left&&!i,r=e===p.Down&&!j||e===p.Up&&!f;if(q&&o.x!==k.x){let a=c.scrollLeft+b.x,f=e===p.Right&&a<=l.x||e===p.Left&&a>=m.x;if(f&&!b.y)return void c.scrollTo({left:a,behavior:g});f?d.x=c.scrollLeft-a:d.x=e===p.Right?c.scrollLeft-l.x:c.scrollLeft-m.x,d.x&&c.scrollBy({left:-d.x,behavior:g});break}if(r&&o.y!==k.y){let a=c.scrollTop+b.y,f=e===p.Down&&a<=l.y||e===p.Up&&a>=m.y;if(f&&!b.x)return void c.scrollTo({top:a,behavior:g});f?d.y=c.scrollTop-a:d.y=e===p.Down?c.scrollTop-l.y:c.scrollTop-m.y,d.y&&c.scrollBy({top:-d.y,behavior:g});break}}this.handleMove(a,R(S(k,this.referenceCoordinates),d))}}}handleMove(a,b){let{onMove:c}=this.props;a.preventDefault(),c(b)}handleEnd(a){let{onEnd:b}=this.props;a.preventDefault(),this.detach(),b()}handleCancel(a){let{onCancel:b}=this.props;a.preventDefault(),this.detach(),b()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function aL(a){return!!(a&&"distance"in a)}function aM(a){return!!(a&&"delay"in a)}aK.activators=[{eventName:"onKeyDown",handler:(a,b,c)=>{let{keyboardCodes:d=aI,onActivation:e}=b,{active:f}=c,{code:g}=a.nativeEvent;if(d.start.includes(g)){let b=f.activatorNode.current;return(!b||a.target===b)&&(a.preventDefault(),null==e||e({event:a.nativeEvent}),!0)}return!1}}];class aN{constructor(a,b,c){var d;void 0===c&&(c=function(a){let{EventTarget:b}=D(a);return a instanceof b?a:H(a)}(a.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=a,this.events=b;const{event:e}=a,{target:f}=e;this.props=a,this.events=b,this.document=H(f),this.documentListeners=new aE(this.document),this.listeners=new aE(c),this.windowListeners=new aE(D(f)),this.initialCoordinates=null!=(d=U(e))?d:ae,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:a,props:{options:{activationConstraint:b,bypassActivationConstraint:c}}}=this;if(this.listeners.add(a.move.name,this.handleMove,{passive:!1}),this.listeners.add(a.end.name,this.handleEnd),a.cancel&&this.listeners.add(a.cancel.name,this.handleCancel),this.windowListeners.add(o.Resize,this.handleCancel),this.windowListeners.add(o.DragStart,aG),this.windowListeners.add(o.VisibilityChange,this.handleCancel),this.windowListeners.add(o.ContextMenu,aG),this.documentListeners.add(o.Keydown,this.handleKeydown),b){if(null!=c&&c({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(aM(b)){this.timeoutId=setTimeout(this.handleStart,b.delay),this.handlePending(b);return}if(aL(b))return void this.handlePending(b)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(a,b){let{active:c,onPending:d}=this.props;d(c,a,this.initialCoordinates,b)}handleStart(){let{initialCoordinates:a}=this,{onStart:b}=this.props;a&&(this.activated=!0,this.documentListeners.add(o.Click,aH,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(o.SelectionChange,this.removeTextSelection),b(a))}handleMove(a){var b;let{activated:c,initialCoordinates:d,props:e}=this,{onMove:f,options:{activationConstraint:g}}=e;if(!d)return;let h=null!=(b=U(a))?b:ae,i=S(d,h);if(!c&&g){if(aL(g)){if(null!=g.tolerance&&aF(i,g.tolerance))return this.handleCancel();if(aF(i,g.distance))return this.handleStart()}return aM(g)&&aF(i,g.tolerance)?this.handleCancel():void this.handlePending(g,i)}a.cancelable&&a.preventDefault(),f(h)}handleEnd(){let{onAbort:a,onEnd:b}=this.props;this.detach(),this.activated||a(this.props.active),b()}handleCancel(){let{onAbort:a,onCancel:b}=this.props;this.detach(),this.activated||a(this.props.active),b()}handleKeydown(a){a.code===p.Esc&&this.handleCancel()}removeTextSelection(){var a;null==(a=this.document.getSelection())||a.removeAllRanges()}}let aO={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class aP extends aN{constructor(a){const{event:b}=a;super(a,aO,H(b.target))}}aP.activators=[{eventName:"onPointerDown",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b;return!!c.isPrimary&&0===c.button&&(null==d||d({event:c}),!0)}}];let aQ={move:{name:"mousemove"},end:{name:"mouseup"}};(h=q||(q={}))[h.RightClick=2]="RightClick";class aR extends aN{constructor(a){super(a,aQ,H(a.event.target))}}aR.activators=[{eventName:"onMouseDown",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b;return c.button!==q.RightClick&&(null==d||d({event:c}),!0)}}];let aS={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class aT extends aN{constructor(a){super(a,aS)}static setup(){return window.addEventListener(aS.move.name,a,{capture:!1,passive:!1}),function(){window.removeEventListener(aS.move.name,a)};function a(){}}}aT.activators=[{eventName:"onTouchStart",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b,{touches:e}=c;return!(e.length>1)&&(null==d||d({event:c}),!0)}}],(i=r||(r={}))[i.Pointer=0]="Pointer",i[i.DraggableRect=1]="DraggableRect",(j=s||(s={}))[j.TreeOrder=0]="TreeOrder",j[j.ReversedTreeOrder=1]="ReversedTreeOrder";let aU={x:{[n.Backward]:!1,[n.Forward]:!1},y:{[n.Backward]:!1,[n.Forward]:!1}};(k=t||(t={}))[k.Always=0]="Always",k[k.BeforeDragging=1]="BeforeDragging",k[k.WhileDragging=2]="WhileDragging",(u||(u={})).Optimized="optimized";let aV=new Map;function aW(a,b){return L(c=>a?c||("function"==typeof b?b(a):a):null,[b,a])}function aX(a){let{callback:b,disabled:c}=a,d=J(b),e=(0,x.useMemo)(()=>{if(c||"u"<typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:a}=window;return new a(d)},[c]);return(0,x.useEffect)(()=>()=>null==e?void 0:e.disconnect(),[e]),e}function aY(a){return new aD(aq(a),a)}function aZ(a,b,c){void 0===b&&(b=aY);let[d,e]=(0,x.useState)(null);function f(){e(d=>{if(!a)return null;if(!1===a.isConnected){var e;return null!=(e=null!=d?d:c)?e:null}let f=b(a);return JSON.stringify(d)===JSON.stringify(f)?d:f})}let g=function(a){let{callback:b,disabled:c}=a,d=J(b),e=(0,x.useMemo)(()=>{if(c||"u"<typeof window||void 0===window.MutationObserver)return;let{MutationObserver:a}=window;return new a(d)},[d,c]);return(0,x.useEffect)(()=>()=>null==e?void 0:e.disconnect(),[e]),e}({callback(b){if(a)for(let c of b){let{type:b,target:d}=c;if("childList"===b&&d instanceof HTMLElement&&d.contains(a)){f();break}}}}),h=aX({callback:f});return I(()=>{f(),a?(null==h||h.observe(a),null==g||g.observe(document.body,{childList:!0,subtree:!0})):(null==h||h.disconnect(),null==g||g.disconnect())},[a]),d}let a$=[];function a_(a,b){void 0===b&&(b=[]);let c=(0,x.useRef)(null);return(0,x.useEffect)(()=>{c.current=null},b),(0,x.useEffect)(()=>{let b=a!==ae;b&&!c.current&&(c.current=a),!b&&c.current&&(c.current=null)},[a]),c.current?S(a,c.current):ae}function a0(a){return(0,x.useMemo)(()=>{let b,c;return a?(b=a.innerWidth,{top:0,left:0,right:b,bottom:c=a.innerHeight,width:b,height:c}):null},[a])}let a1=[],a2=[{sensor:aP,options:{}},{sensor:aK,options:{}}],a3={current:{}},a4={draggable:{measure:ar},droppable:{measure:ar,strategy:t.WhileDragging,frequency:u.Optimized},dragOverlay:{measure:aq}};class a5 extends Map{get(a){var b;return null!=a&&null!=(b=super.get(a))?b:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(a=>{let{disabled:b}=a;return!b})}getNodeFor(a){var b,c;return null!=(b=null==(c=this.get(a))?void 0:c.node.current)?b:void 0}}let a6={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new a5,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:ac},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:a4,measureDroppableContainers:ac,windowRect:null,measuringScheduled:!1},a7={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:ac,draggableNodes:new Map,over:null,measureDroppableContainers:ac},a8=(0,x.createContext)(a7),a9=(0,x.createContext)(a6);function ba(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new a5}}}function bb(a,b){switch(b.type){case m.DragStart:return{...a,draggable:{...a.draggable,initialCoordinates:b.initialCoordinates,active:b.active}};case m.DragMove:if(null==a.draggable.active)return a;return{...a,draggable:{...a.draggable,translate:{x:b.coordinates.x-a.draggable.initialCoordinates.x,y:b.coordinates.y-a.draggable.initialCoordinates.y}}};case m.DragEnd:case m.DragCancel:return{...a,draggable:{...a.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case m.RegisterDroppable:{let{element:c}=b,{id:d}=c,e=new a5(a.droppable.containers);return e.set(d,c),{...a,droppable:{...a.droppable,containers:e}}}case m.SetDroppableDisabled:{let{id:c,key:d,disabled:e}=b,f=a.droppable.containers.get(c);if(!f||d!==f.key)return a;let g=new a5(a.droppable.containers);return g.set(c,{...f,disabled:e}),{...a,droppable:{...a.droppable,containers:g}}}case m.UnregisterDroppable:{let{id:c,key:d}=b,e=a.droppable.containers.get(c);if(!e||d!==e.key)return a;let f=new a5(a.droppable.containers);return f.delete(c),{...a,droppable:{...a.droppable,containers:f}}}default:return a}}function bc(a){let{disabled:b}=a,{active:c,activatorEvent:d,draggableNodes:e}=(0,x.useContext)(a8),f=N(d),g=N(null==c?void 0:c.id);return(0,x.useEffect)(()=>{if(!b&&!d&&f&&null!=g){if(!T(f)||document.activeElement===f.target)return;let a=e.get(g);if(!a)return;let{activatorNode:b,node:c}=a;(b.current||c.current)&&requestAnimationFrame(()=>{for(let a of[b.current,c.current]){if(!a)continue;let b=a.matches(W)?a:a.querySelector(W);if(b){b.focus();break}}})}},[d,b,e,g,f]),null}let bd=(0,x.createContext)({...ae,scaleX:1,scaleY:1});(l=v||(v={}))[l.Uninitialized=0]="Uninitialized",l[l.Initializing=1]="Initializing",l[l.Initialized=2]="Initialized";let be=(0,x.memo)(function(a){var b,c,d,e,f,g,h,i;let j,k,l,o,p,q,u,w,{id:B,accessibility:C,autoScroll:E=!0,children:G,sensors:H=a2,collisionDetection:J=am,measuring:O,modifiers:Q,...S}=a,[T,V]=(0,x.useReducer)(bb,void 0,ba),[W,X]=function(){let[a]=(0,x.useState)(()=>new Set),b=(0,x.useCallback)(b=>(a.add(b),()=>a.delete(b)),[a]);return[(0,x.useCallback)(b=>{let{type:c,event:d}=b;a.forEach(a=>{var b;return null==(b=a[c])?void 0:b.call(a,d)})},[a]),b]}(),[Y,Z]=(0,x.useState)(v.Uninitialized),_=Y===v.Initialized,{draggable:{active:aa,nodes:ac,translate:ad},droppable:{containers:af}}=T,ag=null!=aa?ac.get(aa):null,ah=(0,x.useRef)({initial:null,translated:null}),ai=(0,x.useMemo)(()=>{var a;return null!=aa?{id:aa,data:null!=(a=null==ag?void 0:ag.data)?a:a3,rect:ah}:null},[aa,ag]),ak=(0,x.useRef)(null),[al,ap]=(0,x.useState)(null),[ar,av]=(0,x.useState)(null),aw=K(S,Object.values(S)),aC=P("DndDescribedBy",B),aE=(0,x.useMemo)(()=>af.getEnabled(),[af]),aF=(0,x.useMemo)(()=>({draggable:{...a4.draggable,...null==O?void 0:O.draggable},droppable:{...a4.droppable,...null==O?void 0:O.droppable},dragOverlay:{...a4.dragOverlay,...null==O?void 0:O.dragOverlay}}),[null==O?void 0:O.draggable,null==O?void 0:O.droppable,null==O?void 0:O.dragOverlay]),{droppableRects:aG,measureDroppableContainers:aH,measuringScheduled:aI}=function(a,b){let{dragging:c,dependencies:d,config:e}=b,[f,g]=(0,x.useState)(null),{frequency:h,measure:i,strategy:j}=e,k=(0,x.useRef)(a),l=function(){switch(j){case t.Always:return!1;case t.BeforeDragging:return c;default:return!c}}(),m=K(l),n=(0,x.useCallback)(function(a){void 0===a&&(a=[]),m.current||g(b=>null===b?a:b.concat(a.filter(a=>!b.includes(a))))},[m]),o=(0,x.useRef)(null),p=L(b=>{if(l&&!c)return aV;if(!b||b===aV||k.current!==a||null!=f){let b=new Map;for(let c of a){if(!c)continue;if(f&&f.length>0&&!f.includes(c.id)&&c.rect.current){b.set(c.id,c.rect.current);continue}let a=c.node.current,d=a?new aD(i(a),a):null;c.rect.current=d,d&&b.set(c.id,d)}return b}return b},[a,f,c,l,i]);return(0,x.useEffect)(()=>{k.current=a},[a]),(0,x.useEffect)(()=>{l||n()},[c,l]),(0,x.useEffect)(()=>{f&&f.length>0&&g(null)},[JSON.stringify(f)]),(0,x.useEffect)(()=>{l||"number"!=typeof h||null!==o.current||(o.current=setTimeout(()=>{n(),o.current=null},h))},[h,l,n,...d]),{droppableRects:p,measureDroppableContainers:n,measuringScheduled:null!=f}}(aE,{dragging:_,dependencies:[ad.x,ad.y],config:aF.droppable}),aJ=L(a=>{var b;return null==aa?null:null!=(b=null!=p?p:a)?b:null},[p=(o=null!=aa?ac.get(aa):void 0)?o.node.current:null,aa]),aK=(0,x.useMemo)(()=>ar?U(ar):null,[ar]),aL=(j=(null==al?void 0:al.autoScrollEnabled)===!1,k="object"==typeof E?!1===E.enabled:!1===E,l=_&&!j&&!k,"object"==typeof E?{...E,enabled:l}:{enabled:l}),aM=aW(aJ,aF.draggable.measure);!function(a){let{activeNode:b,measure:c,initialRect:d,config:e=!0}=a,f=(0,x.useRef)(!1),{x:g,y:h}="boolean"==typeof e?{x:e,y:e}:e;I(()=>{if(!g&&!h||!b){f.current=!1;return}if(f.current||!d)return;let a=null==b?void 0:b.node.current;if(!a||!1===a.isConnected)return;let e=an(c(a),d);if(g||(e.x=0),h||(e.y=0),f.current=!0,Math.abs(e.x)>0||Math.abs(e.y)>0){let b=at(a);b&&b.scrollBy({top:e.y,left:e.x})}},[b,g,h,d,c])}({activeNode:null!=aa?ac.get(aa):null,config:aL.layoutShiftCompensation,initialRect:aM,measure:aF.draggable.measure});let aN=aZ(aJ,aF.draggable.measure,aM),aO=aZ(aJ?aJ.parentElement:null),aP=(0,x.useRef)({activatorEvent:null,active:null,activeNode:aJ,collisionRect:null,collisions:null,droppableRects:aG,draggableNodes:ac,draggingNode:null,draggingNodeRect:null,droppableContainers:af,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),aQ=af.getNodeFor(null==(b=aP.current.over)?void 0:b.id),aR=function(a){let{measure:b}=a,[c,d]=(0,x.useState)(null),e=aX({callback:(0,x.useCallback)(a=>{for(let{target:c}of a)if(F(c)){d(a=>{let d=b(c);return a?{...a,width:d.width,height:d.height}:d});break}},[b])}),[f,g]=M((0,x.useCallback)(a=>{let c=function(a){if(!a)return null;if(a.children.length>1)return a;let b=a.children[0];return F(b)?b:a}(a);null==e||e.disconnect(),c&&(null==e||e.observe(c)),d(c?b(c):null)},[b,e]));return(0,x.useMemo)(()=>({nodeRef:f,rect:c,setRef:g}),[c,f,g])}({measure:aF.dragOverlay.measure}),aS=null!=(c=aR.nodeRef.current)?c:aJ,aT=_?null!=(d=aR.rect)?d:aN:null,aY=!!(aR.nodeRef.current&&aR.rect),a5=(q=aW(f=aY?null:aN),an(f,q)),a6=a0(aS?D(aS):null),a7=(g=_?null!=aQ?aQ:aJ:null,u=(0,x.useRef)(g),w=L(a=>g?a&&a!==a$&&g&&u.current&&g.parentNode===u.current.parentNode?a:as(g):a$,[g]),(0,x.useEffect)(()=>{u.current=g},[g]),w),be=function(a,b){void 0===b&&(b=aq);let[c]=a,d=a0(c?D(c):null),[e,f]=(0,x.useState)(a1);function g(){f(()=>a.length?a.map(a=>ay(a)?d:new aD(b(a),a)):a1)}let h=aX({callback:g});return I(()=>{null==h||h.disconnect(),g(),a.forEach(a=>null==h?void 0:h.observe(a))},[a]),e}(a7),bf=function(a,b){let{transform:c,...d}=b;return null!=a&&a.length?a.reduce((a,b)=>b({transform:a,...d}),c):c}(Q,{transform:{x:ad.x-a5.x,y:ad.y-a5.y,scaleX:1,scaleY:1},activatorEvent:ar,active:ai,activeNodeRect:aN,containerNodeRect:aO,draggingNodeRect:aT,over:aP.current.over,overlayNodeRect:aR.rect,scrollableAncestors:a7,scrollableAncestorRects:be,windowRect:a6}),bg=aK?R(aK,ad):null,bh=function(a){let[b,c]=(0,x.useState)(null),d=(0,x.useRef)(a),e=(0,x.useCallback)(a=>{let b=au(a.target);b&&c(a=>a?(a.set(b,ax(b)),new Map(a)):null)},[]);return(0,x.useEffect)(()=>{let b=d.current;if(a!==b){f(b);let g=a.map(a=>{let b=au(a);return b?(b.addEventListener("scroll",e,{passive:!0}),[b,ax(b)]):null}).filter(a=>null!=a);c(g.length?new Map(g):null),d.current=a}return()=>{f(a),f(b)};function f(a){a.forEach(a=>{let b=au(a);null==b||b.removeEventListener("scroll",e)})}},[e,a]),(0,x.useMemo)(()=>a.length?b?Array.from(b.values()).reduce((a,b)=>R(a,b),ae):aB(a):ae,[a,b])}(a7),bi=a_(bh),bj=a_(bh,[aN]),bk=R(bf,bi),bl=aT?ao(aT,bf):null,bm=ai&&bl?J({active:ai,collisionRect:bl,droppableRects:aG,droppableContainers:aE,pointerCoordinates:bg}):null,bn=aj(bm,"id"),[bo,bp]=(0,x.useState)(null),bq=(h=aY?bf:R(bf,bj),i=null!=(e=null==bo?void 0:bo.rect)?e:null,{...h,scaleX:i&&aN?i.width/aN.width:1,scaleY:i&&aN?i.height/aN.height:1}),br=(0,x.useRef)(null),bs=(0,x.useCallback)((a,b)=>{let{sensor:c,options:d}=b;if(null==ak.current)return;let e=ac.get(ak.current);if(!e)return;let f=a.nativeEvent,g=new c({active:ak.current,activeNode:e,event:f,options:d,context:aP,onAbort(a){if(!ac.get(a))return;let{onDragAbort:b}=aw.current,c={id:a};null==b||b(c),W({type:"onDragAbort",event:c})},onPending(a,b,c,d){if(!ac.get(a))return;let{onDragPending:e}=aw.current,f={id:a,constraint:b,initialCoordinates:c,offset:d};null==e||e(f),W({type:"onDragPending",event:f})},onStart(a){let b=ak.current;if(null==b)return;let c=ac.get(b);if(!c)return;let{onDragStart:d}=aw.current,e={activatorEvent:f,active:{id:b,data:c.data,rect:ah}};(0,z.unstable_batchedUpdates)(()=>{null==d||d(e),Z(v.Initializing),V({type:m.DragStart,initialCoordinates:a,active:b}),W({type:"onDragStart",event:e}),ap(br.current),av(f)})},onMove(a){V({type:m.DragMove,coordinates:a})},onEnd:h(m.DragEnd),onCancel:h(m.DragCancel)});function h(a){return async function(){let{active:b,collisions:c,over:d,scrollAdjustedTranslate:e}=aP.current,g=null;if(b&&e){let{cancelDrop:h}=aw.current;g={activatorEvent:f,active:b,collisions:c,delta:e,over:d},a===m.DragEnd&&"function"==typeof h&&await Promise.resolve(h(g))&&(a=m.DragCancel)}ak.current=null,(0,z.unstable_batchedUpdates)(()=>{V({type:a}),Z(v.Uninitialized),bp(null),ap(null),av(null),br.current=null;let b=a===m.DragEnd?"onDragEnd":"onDragCancel";if(g){let a=aw.current[b];null==a||a(g),W({type:b,event:g})}})}}br.current=g},[ac]),bt=(0,x.useCallback)((a,b)=>(c,d)=>{let e=c.nativeEvent,f=ac.get(d);null!==ak.current||!f||e.dndKit||e.defaultPrevented||!0===a(c,b.options,{active:f})&&(e.dndKit={capturedBy:b.sensor},ak.current=d,bs(c,b))},[ac,bs]),bu=(0,x.useMemo)(()=>H.reduce((a,b)=>{let{sensor:c}=b;return[...a,...c.activators.map(a=>({eventName:a.eventName,handler:bt(a.handler,b)}))]},[]),[H,bt]);(0,x.useEffect)(()=>{if(!A)return;let a=H.map(a=>{let{sensor:b}=a;return null==b.setup?void 0:b.setup()});return()=>{for(let b of a)null==b||b()}},H.map(a=>{let{sensor:b}=a;return b})),I(()=>{aN&&Y===v.Initializing&&Z(v.Initialized)},[aN,Y]),(0,x.useEffect)(()=>{let{onDragMove:a}=aw.current,{active:b,activatorEvent:c,collisions:d,over:e}=aP.current;if(!b||!c)return;let f={active:b,activatorEvent:c,collisions:d,delta:{x:bk.x,y:bk.y},over:e};(0,z.unstable_batchedUpdates)(()=>{null==a||a(f),W({type:"onDragMove",event:f})})},[bk.x,bk.y]),(0,x.useEffect)(()=>{let{active:a,activatorEvent:b,collisions:c,droppableContainers:d,scrollAdjustedTranslate:e}=aP.current;if(!a||null==ak.current||!b||!e)return;let{onDragOver:f}=aw.current,g=d.get(bn),h=g&&g.rect.current?{id:g.id,rect:g.rect.current,data:g.data,disabled:g.disabled}:null,i={active:a,activatorEvent:b,collisions:c,delta:{x:e.x,y:e.y},over:h};(0,z.unstable_batchedUpdates)(()=>{bp(h),null==f||f(i),W({type:"onDragOver",event:i})})},[bn]),I(()=>{aP.current={activatorEvent:ar,active:ai,activeNode:aJ,collisionRect:bl,collisions:bm,droppableRects:aG,draggableNodes:ac,draggingNode:aS,draggingNodeRect:aT,droppableContainers:af,over:bo,scrollableAncestors:a7,scrollAdjustedTranslate:bk},ah.current={initial:aT,translated:bl}},[ai,aJ,bm,bl,ac,aS,aT,aG,af,bo,a7,bk]),function(a){let b,{acceleration:c,activator:d=r.Pointer,canScroll:e,draggingRect:f,enabled:g,interval:h=5,order:i=s.TreeOrder,pointerCoordinates:j,scrollableAncestors:k,scrollableAncestorRects:l,delta:m,threshold:o}=a,p=function(a){let{delta:b,disabled:c}=a,d=N(b);return L(a=>{if(c||!d||!a)return aU;let e={x:Math.sign(b.x-d.x),y:Math.sign(b.y-d.y)};return{x:{[n.Backward]:a.x[n.Backward]||-1===e.x,[n.Forward]:a.x[n.Forward]||1===e.x},y:{[n.Backward]:a.y[n.Backward]||-1===e.y,[n.Forward]:a.y[n.Forward]||1===e.y}}},[c,b,d])}({delta:m,disabled:!g}),[q,t]=(b=(0,x.useRef)(null),[(0,x.useCallback)((a,c)=>{b.current=setInterval(a,c)},[]),(0,x.useCallback)(()=>{null!==b.current&&(clearInterval(b.current),b.current=null)},[])]),u=(0,x.useRef)({x:0,y:0}),v=(0,x.useRef)({x:0,y:0}),w=(0,x.useMemo)(()=>{switch(d){case r.Pointer:return j?{top:j.y,bottom:j.y,left:j.x,right:j.x}:null;case r.DraggableRect:return f}},[d,f,j]),y=(0,x.useRef)(null),z=(0,x.useCallback)(()=>{let a=y.current;if(!a)return;let b=u.current.x*v.current.x,c=u.current.y*v.current.y;a.scrollBy(b,c)},[]),A=(0,x.useMemo)(()=>i===s.TreeOrder?[...k].reverse():k,[i,k]);(0,x.useEffect)(()=>{if(!g||!k.length||!w)return void t();for(let a of A){if((null==e?void 0:e(a))===!1)continue;let b=l[k.indexOf(a)];if(!b)continue;let{direction:d,speed:f}=function(a,b,c,d,e){let{top:f,left:g,right:h,bottom:i}=c;void 0===d&&(d=10),void 0===e&&(e=aA);let{isTop:j,isBottom:k,isLeft:l,isRight:m}=az(a),o={x:0,y:0},p={x:0,y:0},q={height:b.height*e.y,width:b.width*e.x};return!j&&f<=b.top+q.height?(o.y=n.Backward,p.y=d*Math.abs((b.top+q.height-f)/q.height)):!k&&i>=b.bottom-q.height&&(o.y=n.Forward,p.y=d*Math.abs((b.bottom-q.height-i)/q.height)),!m&&h>=b.right-q.width?(o.x=n.Forward,p.x=d*Math.abs((b.right-q.width-h)/q.width)):!l&&g<=b.left+q.width&&(o.x=n.Backward,p.x=d*Math.abs((b.left+q.width-g)/q.width)),{direction:o,speed:p}}(a,b,w,c,o);for(let a of["x","y"])p[a][d[a]]||(f[a]=0,d[a]=0);if(f.x>0||f.y>0){t(),y.current=a,q(z,h),u.current=f,v.current=d;return}}u.current={x:0,y:0},v.current={x:0,y:0},t()},[c,z,e,t,g,h,JSON.stringify(w),JSON.stringify(p),q,k,A,l,JSON.stringify(o)])}({...aL,delta:ad,draggingRect:bl,pointerCoordinates:bg,scrollableAncestors:a7,scrollableAncestorRects:be});let bv=(0,x.useMemo)(()=>({active:ai,activeNode:aJ,activeNodeRect:aN,activatorEvent:ar,collisions:bm,containerNodeRect:aO,dragOverlay:aR,draggableNodes:ac,droppableContainers:af,droppableRects:aG,over:bo,measureDroppableContainers:aH,scrollableAncestors:a7,scrollableAncestorRects:be,measuringConfiguration:aF,measuringScheduled:aI,windowRect:a6}),[ai,aJ,aN,ar,bm,aO,aR,ac,af,aG,bo,aH,a7,be,aF,aI,a6]),bw=(0,x.useMemo)(()=>({activatorEvent:ar,activators:bu,active:ai,activeNodeRect:aN,ariaDescribedById:{draggable:aC},dispatch:V,draggableNodes:ac,over:bo,measureDroppableContainers:aH}),[ar,bu,ai,aN,V,aC,ac,bo,aH]);return y().createElement($.Provider,{value:X},y().createElement(a8.Provider,{value:bw},y().createElement(a9.Provider,{value:bv},y().createElement(bd.Provider,{value:bq},G)),y().createElement(bc,{disabled:(null==C?void 0:C.restoreFocus)===!1})),y().createElement(ab,{...C,hiddenTextDescribedById:aC}))}),bf=(0,x.createContext)(null),bg="button",bh={timeout:25};function bi(a,b,c){let d=a.slice();return d.splice(c<0?d.length+c:c,0,d.splice(b,1)[0]),d}function bj(a){return null!==a&&a>=0}let bk=a=>{let{rects:b,activeIndex:c,overIndex:d,index:e}=a,f=bi(b,d,c),g=b[e],h=f[e];return h&&g?{x:h.left-g.left,y:h.top-g.top,scaleX:h.width/g.width,scaleY:h.height/g.height}:null},bl={scaleX:1,scaleY:1},bm=a=>{var b,c,d,e;let f,g,h,{activeIndex:i,activeNodeRect:j,index:k,rects:l,overIndex:m}=a,n=null!=(b=l[i])?b:j;if(!n)return null;if(k===i){let a=l[m];return a?{x:0,y:i<m?a.top+a.height-(n.top+n.height):a.top-n.top,...bl}:null}let o=(c=l,d=k,e=i,f=c[d],g=c[d-1],h=c[d+1],f?e<d?g?f.top-(g.top+g.height):h?h.top-(f.top+f.height):0:h?h.top-(f.top+f.height):g?f.top-(g.top+g.height):0:0);return k>i&&k<=m?{x:0,y:-n.height-o,...bl}:k<i&&k>=m?{x:0,y:n.height+o,...bl}:{x:0,y:0,...bl}},bn="Sortable",bo=y().createContext({activeIndex:-1,containerId:bn,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:bk,disabled:{draggable:!1,droppable:!1}});function bp(a){let{children:b,id:c,items:d,strategy:e=bk,disabled:f=!1}=a,{active:g,dragOverlay:h,droppableRects:i,over:j,measureDroppableContainers:k}=(0,x.useContext)(a9),l=P(bn,c),m=null!==h.rect,n=(0,x.useMemo)(()=>d.map(a=>"object"==typeof a&&"id"in a?a.id:a),[d]),o=null!=g,p=g?n.indexOf(g.id):-1,q=j?n.indexOf(j.id):-1,r=(0,x.useRef)(n),s=!function(a,b){if(a===b)return!0;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}(n,r.current),t=-1!==q&&-1===p||s,u="boolean"==typeof f?{draggable:f,droppable:f}:f;I(()=>{s&&o&&k(n)},[s,n,o,k]),(0,x.useEffect)(()=>{r.current=n},[n]);let v=(0,x.useMemo)(()=>({activeIndex:p,containerId:l,disabled:u,disableTransforms:t,items:n,overIndex:q,useDragOverlay:m,sortedRects:n.reduce((a,b,c)=>{let d=i.get(b);return d&&(a[c]=d),a},Array(n.length)),strategy:e}),[p,l,u.draggable,u.droppable,t,n,q,i,m,e]);return y().createElement(bo.Provider,{value:v},b)}let bq=a=>{let{id:b,items:c,activeIndex:d,overIndex:e}=a;return bi(c,d,e).indexOf(b)},br=a=>{let{containerId:b,isSorting:c,wasDragging:d,index:e,items:f,newIndex:g,previousItems:h,previousContainerId:i,transition:j}=a;return!!j&&!!d&&(h===f||e!==g)&&(!!c||g!==e&&b===i)},bs={duration:200,easing:"ease"},bt="transform",bu=V.Transition.toString({property:bt,duration:0,easing:"linear"}),bv={roleDescription:"sortable"};function bw(a){if(!a)return!1;let b=a.data.current;return!!b&&"sortable"in b&&"object"==typeof b.sortable&&"containerId"in b.sortable&&"items"in b.sortable&&"index"in b.sortable}let bx=[p.Down,p.Right,p.Up,p.Left],by=(a,b)=>{let{context:{active:c,collisionRect:d,droppableRects:e,droppableContainers:f,over:g,scrollableAncestors:h}}=b;if(bx.includes(a.code)){if(a.preventDefault(),!c||!d)return;let b=[];f.getEnabled().forEach(c=>{if(!c||null!=c&&c.disabled)return;let f=e.get(c.id);if(f)switch(a.code){case p.Down:d.top<f.top&&b.push(c);break;case p.Up:d.top>f.top&&b.push(c);break;case p.Left:d.left>f.left&&b.push(c);break;case p.Right:d.left<f.left&&b.push(c)}});let k=(a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=ai(b),f=[];for(let a of d){let{id:b}=a,d=c.get(b);if(d){let c=ai(d),g=Number((e.reduce((a,b,d)=>a+af(c[d],b),0)/4).toFixed(4));f.push({id:b,data:{droppableContainer:a,value:g}})}}return f.sort(ag)})({active:c,collisionRect:d,droppableRects:e,droppableContainers:b,pointerCoordinates:null}),l=aj(k,"id");if(l===(null==g?void 0:g.id)&&k.length>1&&(l=k[1].id),null!=l){let a=f.get(c.id),b=f.get(l),g=b?e.get(b.id):null,k=null==b?void 0:b.node.current;if(k&&g&&a&&b){var i,j;let c=as(k).some((a,b)=>h[b]!==a),e=bz(a,b),f=(i=a,j=b,!!bw(i)&&!!bw(j)&&!!bz(i,j)&&i.data.current.sortable.index<j.data.current.sortable.index),l=c||!e?{x:0,y:0}:{x:f?d.width-g.width:0,y:f?d.height-g.height:0},m={x:g.left,y:g.top};return l.x&&l.y?m:S(m,l)}}}};function bz(a,b){return!!bw(a)&&!!bw(b)&&a.data.current.sortable.containerId===b.data.current.sortable.containerId}let bA=a=>{let b,{containerNodeRect:c,draggingNodeRect:d,transform:e}=a;return d&&c?(b={...e},d.top+e.y<=c.top?b.y=c.top-d.top:d.bottom+e.y>=c.top+c.height&&(b.y=c.top+c.height-d.bottom),d.left+e.x<=c.left?b.x=c.left-d.left:d.right+e.x>=c.left+c.width&&(b.x=c.left+c.width-d.right),b):e},bB=a=>{let{transform:b}=a;return{...b,x:0}};var bC=c(50412),bD=c(50377),bE=c(91431),bF=c(96919);let bG=/^[a-zA-Z0-9_.\-]+$/,bH=[{value:"global",label:"To\xe0n cục / h\xe0nh vi hiện tại",description:"Giữ h\xe0nh vi hiện tại: mọi request d\xf9ng chung v\xf2ng xoay combo to\xe0n cục."},{value:"client_ip",label:"IP client",description:"Giữ c\xf9ng model khởi đầu cho c\xf9ng IP client cho đến khi hết TTL."},{value:"client_session",label:"IP client + phi\xean chat",description:"Ph\xf9 hợp nhất cho c\xf4ng cụ chat. Giữ c\xf9ng model cho c\xf9ng m\xe1y v\xe0 c\xf9ng phi\xean chat."}],bI=[{value:"fallback",label:"Ưu ti\xean fallback",description:"Thử model trong combo theo đ\xfang thứ tự hiển thị, lỗi th\xec fallback."},{value:"round-robin",label:"Round Robin",description:"Lu\xe2n phi\xean model đang bật được thử đầu ti\xean. C\xe1c t\xf9y chọn giữ d\xednh b\xean dưới vẫn được \xe1p dụng."},{value:"least-latency",label:"Độ trễ thấp nhất",description:"Ưu ti\xean target c\xf3 điểm health/độ trễ tốt nhất. Hữu \xedch cho LAN Ollama."},{value:"p2c",label:"P2C",description:"Power of Two Choices: lấy mẫu hai target khỏe rồi chọn target \xedt bận hơn."}],bJ=[{card:"border-sky-100 bg-sky-50/55 dark:border-sky-400/15 dark:bg-sky-950/10",panel:"border-sky-100/80 bg-white/80 dark:border-sky-400/15 dark:bg-zinc-950/60"},{card:"border-slate-200 bg-slate-50/80 dark:border-slate-500/15 dark:bg-slate-900/35",panel:"border-slate-200/80 bg-white/80 dark:border-slate-500/15 dark:bg-zinc-950/60"},{card:"border-emerald-100 bg-emerald-50/45 dark:border-emerald-400/15 dark:bg-emerald-950/10",panel:"border-emerald-100/80 bg-white/80 dark:border-emerald-400/15 dark:bg-zinc-950/60"},{card:"border-violet-100 bg-violet-50/45 dark:border-violet-400/15 dark:bg-violet-950/10",panel:"border-violet-100/80 bg-white/80 dark:border-violet-400/15 dark:bg-zinc-950/60"}],bK=Object.freeze({temperature:.7,top_p:.8,top_k:20,min_p:0,presence_penalty:1.5,max_tokens:4096,reasoning_budget:0,thinkingMode:"off"}),bL=Object.freeze({temperature:.6,top_p:.95,top_k:20,min_p:0,presence_penalty:0,max_tokens:4096}),bM=Object.freeze({temperature:.7,top_p:.8,top_k:20,min_p:0,presence_penalty:1.5,max_tokens:4096}),bN=Object.freeze({think:"inheritThinkRequestOverrides",nothink:"inheritNoThinkRequestOverrides"}),bO=[{key:"temperature",label:"temp",min:0,max:2,step:.05},{key:"top_p",label:"top_p",min:.01,max:1,step:.01},{key:"top_k",label:"top_k",min:0,max:1e3,step:1},{key:"min_p",label:"min_p",min:0,max:1,step:.01},{key:"presence_penalty",label:"presence_penalty",min:-2,max:2,step:.05},{key:"max_tokens",label:"max_tokens",min:1,max:262144,step:1}],bP=[{value:"inherit",label:"Theo request gốc",description:"Giữ nguy\xean request gốc, kh\xf4ng inject thinking."},{value:"off",label:"Tắt thinking",description:"Gửi chat_template_kwargs.enable_thinking = false."},{value:"on",label:"Bật thinking",description:"Gửi chat_template_kwargs.enable_thinking = true."}],bQ=[{value:"inherit",label:"Theo cấu h\xecnh hệ thống",description:"Sử dụng ch\xednh s\xe1ch lưu Prompt Logs chung của hệ thống."},{value:"enabled",label:"Lưu đầy đủ nội dung",description:"Cho ph\xe9p quản trị vi\xean xem lại to\xe0n bộ prompt v\xe0 phản hồi của c\xe1c request thuộc combo n\xe0y."},{value:"disabled",label:"Chỉ lưu thống k\xea",description:"Kh\xf4ng lưu nội dung hội thoại. Chỉ lưu metadata, model, provider, token, thời gian xử l\xfd v\xe0 c\xe1c thống k\xea vận h\xe0nh."}];function bR(a){return a&&"object"==typeof a&&!Array.isArray(a)}function bS(a,b){return Object.prototype.hasOwnProperty.call(a||{},b)}function bT(a,{min:b,max:c,precision:d=3}={}){if(null==a||""===a)return;let e=Number(a);if(Number.isFinite(e))return Number(Math.min(c,Math.max(b,e)).toFixed(d))}function bU(a,{min:b,max:c}={}){let d=bT(a,{min:b,max:c,precision:0});return void 0===d?void 0:Math.trunc(d)}function bV(a){let b=b$(a).toLowerCase();return"enabled"===b||"disabled"===b?b:"inherit"}let bW=["temperature","top_p","top_k","min_p","presence_penalty","max_tokens"];function bX(a={}){let b=bR(a)?a:{},c={};if(bS(b,"temperature")){let a=bT(b.temperature,{min:0,max:2});void 0!==a&&(c.temperature=a)}if(bS(b,"top_p")||bS(b,"topP")){let a=bT(b.top_p??b.topP,{min:.01,max:1});void 0!==a&&(c.top_p=a)}if(bS(b,"top_k")||bS(b,"topK")){let a=bU(b.top_k??b.topK,{min:0,max:1e3});void 0!==a&&(c.top_k=a)}if(bS(b,"min_p")||bS(b,"minP")){let a=bT(b.min_p??b.minP,{min:0,max:1});void 0!==a&&(c.min_p=a)}let d=b.presence_penalty??b.presencePenalty??b["presence-penalty"];if(bS(b,"presence_penalty")||bS(b,"presencePenalty")||bS(b,"presence-penalty")){let a=bT(d,{min:-2,max:2});void 0!==a&&(c.presence_penalty=a)}let e=b.max_tokens??b.maxTokens??b.max_token;if(bS(b,"max_tokens")||bS(b,"maxTokens")||bS(b,"max_token")){let a=bU(e,{min:1,max:262144});void 0!==a&&(c.max_tokens=a)}return c}function bY(a={}){let b=bR(a)?a:{},c={};if(bS(b,"temperature")){let a=bT(b.temperature,{min:0,max:2});void 0!==a&&(c.temperature=a)}if(bS(b,"top_p")){let a=bT(b.top_p,{min:.01,max:1});void 0!==a&&(c.top_p=a)}if(bS(b,"top_k")||bS(b,"topK")){let a=bU(b.top_k??b.topK,{min:0,max:1e3});void 0!==a&&(c.top_k=a)}if(bS(b,"min_p")||bS(b,"minP")){let a=bT(b.min_p??b.minP,{min:0,max:1});void 0!==a&&(c.min_p=a)}let d=b.presence_penalty??b.presencePenalty??b["presence-penalty"];if(bS(b,"presence_penalty")||bS(b,"presencePenalty")||bS(b,"presence-penalty")){let a=bT(d,{min:-2,max:2});void 0!==a&&(c.presence_penalty=a)}let e=b.max_tokens??b.maxTokens??b.max_token;if(bS(b,"max_tokens")||bS(b,"maxTokens")||bS(b,"max_token")){let a=bU(e,{min:1,max:262144});void 0!==a&&(c.max_tokens=a)}let f=b.reasoning_budget??b.reasoningBudget??b["reasoning-budget"];if(bS(b,"reasoning_budget")||bS(b,"reasoningBudget")||bS(b,"reasoning-budget")){let a=bU(f,{min:0,max:262144});void 0!==a&&(c.reasoning_budget=a)}let g=b.inheritThinkRequestOverrides??b.thinkRequestOverrides??b.thinkingOnRequestOverrides;if(bS(b,"inheritThinkRequestOverrides")||bS(b,"thinkRequestOverrides")||bS(b,"thinkingOnRequestOverrides")){let a=bX(g);Object.keys(a).length>0&&(c.inheritThinkRequestOverrides=a)}let h=b.inheritNoThinkRequestOverrides??b.noThinkRequestOverrides??b.thinkingOffRequestOverrides;if(bS(b,"inheritNoThinkRequestOverrides")||bS(b,"noThinkRequestOverrides")||bS(b,"thinkingOffRequestOverrides")){let a=bX(h);Object.keys(a).length>0&&(c.inheritNoThinkRequestOverrides=a)}let i=function(a){if(!0===a)return"on";if(!1===a)return"off";let b=b$(a).toLowerCase();return["on","true","1","enable","enabled"].includes(b)?"on":["off","false","0","disable","disabled"].includes(b)?"off":void 0}(b.thinkingMode??b.thinking);if(i&&(c.thinkingMode=i),"off"===c.thinkingMode&&delete c.reasoning_budget,!c.thinkingMode){let a=bX(c);if(Object.keys(a).length>0)for(let b of(c.inheritThinkRequestOverrides={...a,...c.inheritThinkRequestOverrides||{}},c.inheritNoThinkRequestOverrides={...a,...c.inheritNoThinkRequestOverrides||{}},bW))delete c[b]}return c}function bZ(a={}){let b=bX(a||{}),c=[];return void 0!==b.temperature&&c.push(`temp ${b.temperature}`),void 0!==b.top_p&&c.push(`top_p ${b.top_p}`),void 0!==b.top_k&&c.push(`top_k ${b.top_k}`),void 0!==b.min_p&&c.push(`min_p ${b.min_p}`),void 0!==b.presence_penalty&&c.push(`presence ${b.presence_penalty}`),void 0!==b.max_tokens&&c.push(`max ${b.max_tokens}`),c}function b$(a){return String(a||"").trim()}function b_(a={}){return Array.isArray(a.disabledModels)?[...new Set(a.disabledModels.map(a=>b$(a)).filter(Boolean))]:[]}function b0(a={}){let b=a.fallbackStrategy||"fallback";return{...a,fallbackStrategy:b,stickyScope:a.stickyScope||"global",stickyTtlMinutes:Number(a.stickyTtlMinutes||120),stickyFallbackToClientIp:!1!==a.stickyFallbackToClientIp,lanHealthEnabled:!1!==a.lanHealthEnabled,healthCheckPath:a.healthCheckPath||"/api/tags",healthCheckIntervalMs:Number(a.healthCheckIntervalMs||15e3),requiredTags:Array.isArray(a.requiredTags)?a.requiredTags:[],modelTagRules:a.modelTagRules||a.modelTags||a.tagRules||{},disabledModels:b_(a),requestOverrides:bY(a.requestOverrides||{}),contentLoggingMode:bV(a.contentLoggingMode)}}function b1(a={}){let b={...a};b.disabledModels=b_(a),"fallback"===(b.fallbackStrategy||"fallback")&&delete b.fallbackStrategy,b.disabledModels.length||delete b.disabledModels;let c=bV(b.contentLoggingMode);"inherit"===c?delete b.contentLoggingMode:b.contentLoggingMode=c,b.requiredTags?.length||delete b.requiredTags;let d=bY(b.requestOverrides||{});return Object.keys(d).length?b.requestOverrides=d:delete b.requestOverrides,b.modelTagRules&&0!==Object.keys(b.modelTagRules).length||delete b.modelTagRules,"/api/tags"===b.healthCheckPath&&delete b.healthCheckPath,15e3===Number(b.healthCheckIntervalMs)&&delete b.healthCheckIntervalMs,!0===b.lanHealthEnabled&&delete b.lanHealthEnabled,Object.keys(b).length?b:null}function b2(a){return Array.isArray(a)?`[${a.map(b2).join(",")}]`:a&&"object"==typeof a?`{${Object.keys(a).sort().map(b=>`${JSON.stringify(b)}:${b2(a[b])}`).join(",")}}`:JSON.stringify(void 0===a?null:a)}function b3(a=[]){return Array.isArray(a)?a.join(", "):String(a||"")}function b4(a=""){return String(a||"").split(/[\n,;]+/).map(a=>a.trim()).filter(Boolean)}function b5(a={}){return a&&"object"==typeof a?Object.entries(a).map(([a,b])=>`${a}: ${Array.isArray(b)?b.join(", "):String(b||"")}`).join("\n"):""}function b6(a){return"string"==typeof a?a:a&&"object"==typeof a&&(a.value||a.model||a.id)||""}function b7(a={}){let b=b$(a.provider);return b$(a.providerSpecificData?.prefix)||b$(a.prefix)||b$((0,bF.wG)(b))||b}function b8(a={}){return b$(a.email)||b$(a.accountName)||b$(a.displayName)||b$(a.name)||b$(a.providerSpecificData?.nodeName)||b$(a.id)}function b9(a){return a&&"object"==typeof a?b$(a.connectionId||a.connection_id):""}function ca(a){let b=b6(a),c=b9(a);return b?c?`${b}@@${c}`:b:""}function cb(a){return"string"==typeof a?a:a&&"object"==typeof a?b$(a.label)||b$(a.displayName)||b$(a.name)||b6(a):""}function cc(a){if(!a||"object"!=typeof a)return b6(a);let b=b6(a);return b?Object.fromEntries(Object.entries({model:b,connectionId:b9(a)||void 0,label:cb(a)||void 0,provider:b$(a.provider)||void 0,accountName:b$(a.accountName||a.account_name)||void 0,weight:Number(a.weight||0)>0?Number(a.weight):void 0}).filter(([,a])=>void 0!==a&&""!==a)):""}function cd(a,b=!0){let c=cc(a),d=ca(c);return{value:d,enabled:b,target:c,label:cb(c)||d,subtitle:function(a){if(!a||"object"!=typeof a)return"";let b=b9(a),c=b6(a);return b?`T\xe0i khoản cố định • ${b}${c?` • ${c}`:""}`:""}(c)}}function ce(a={}){return b$(a.defaultModel)||b$(a.providerSpecificData?.defaultModel)||b$(a.model)||""}function cf(a,b,c,d=""){let e=b$(c);!e||b.has(e)||(b.add(e),a.push({value:e,label:b$(d)||e}))}function cg(a={},b={}){let c=[],d=new Set,e=b$(a.provider),f=[...new Set([b7(a),b$((0,bF.wG)(e)),e].filter(Boolean))];for(let a of(0,bE.KC)(e)||[])a?.type&&"llm"!==a.type||cf(c,d,a.id,a.name||a.id);for(let[a,e]of Object.entries(b||{})){let b=b$(e),g=f.find(a=>a&&b.startsWith(`${a}/`));if(!g)continue;let h=b.slice(g.length+1);cf(c,d,h,a||h)}return cf(c,d,ce(a),"Model mặc định"),c}function ch(a={},{disabledModels:b=[],requestOverrides:c,contentLoggingMode:d}={}){let e={...a},f=[...new Set((b||[]).map(a=>b$(a)).filter(Boolean))];if(f.length>0?e.disabledModels=f:delete e.disabledModels,void 0!==c){let a=bY(c||{});Object.keys(a).length?e.requestOverrides=a:delete e.requestOverrides}if(void 0!==d){let a=bV(d);"inherit"===a?delete e.contentLoggingMode:e.contentLoggingMode=a}return b1(e)}function ci(){let[a,b]=(0,x.useState)([]),[c,d]=(0,x.useState)(!0),[e,f]=(0,x.useState)(!1),[g,h]=(0,x.useState)(null),[i,j]=(0,x.useState)([]),[k,l]=(0,x.useState)(!1),[m,n]=(0,x.useState)(!1),[o,p]=(0,x.useState)({}),[q,r]=(0,x.useState)(""),[s,t]=(0,x.useState)(null),{copied:u,copy:v}=(0,bD.C)(),y=async()=>{try{let a=await fetch("/api/dashboard/combos",{cache:"no-store"}),c=await a.json();a.ok&&(b(c.combos||[]),p(c.comboStrategies||{}))}catch(a){console.log("Error fetching combo data:",a)}finally{d(!1)}},z=async()=>{if(!k&&!m){n(!0);try{let a=await fetch("/api/providers",{cache:"no-store"}),b=await a.json();a.ok&&(j(b.connections||[]),l(!0))}catch(a){console.log("Error loading provider accounts:",a)}finally{n(!1)}}},A=async()=>{f(!0),z()},B=async a=>{h(a),z()},C=async a=>{let b=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategies:a})});if(!b.ok)throw Error(`Save combo strategies failed: ${b.status}`);p(a)},D=async a=>{let{disabledModels:b=[],requestOverrides:c,contentLoggingMode:d,...e}=a;try{let a=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(a.ok){let a=ch({},{disabledModels:b,requestOverrides:c,contentLoggingMode:d});a&&await C({...o,[e.name]:a}),await y(),r(e.name),f(!1)}else{let b=await a.json();alert(b.error||"Tạo combo thất bại")}}catch(a){console.log("Error creating combo:",a)}},E=async(a,b)=>{let{disabledModels:c=[],requestOverrides:d,contentLoggingMode:e,...f}=b,i=g?.name;try{let b=await fetch(`/api/combos/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)});if(b.ok){let a={...o};i&&i!==f.name&&a[i]&&(a[f.name]=a[i],delete a[i]);let b=ch(a[f.name]||{},{disabledModels:c,requestOverrides:d,contentLoggingMode:e});b?a[f.name]=b:delete a[f.name],await C(a),await y(),r(f.name),h(null)}else{let a=await b.json();alert(a.error||"Cập nhật combo thất bại")}}catch(a){console.log("Error updating combo:",a)}},F=async c=>{let d=a.find(a=>a.id===c);t({title:"X\xf3a combo",message:"Bạn c\xf3 chắc muốn x\xf3a combo n\xe0y?",onConfirm:async()=>{t(null);try{if((await fetch(`/api/combos/${c}`,{method:"DELETE"})).ok){if(d?.name&&o[d.name]){let a={...o};delete a[d.name],await C(a)}b(a=>{let b=a.filter(a=>a.id!==c);return d?.name===q&&r(b[0]?.name||""),b})}}catch(a){console.log("Error deleting combo:",a)}}})},G=async(a,b)=>{try{let c={...o},d=b1({...b0(c[a]),...b});return d?c[a]=d:delete c[a],await C(c),!0}catch(a){return console.log("Error updating combo routing settings:",a),!1}},H=a.find(a=>a.name===q)||a[0]||null,I=H?Math.max(0,a.findIndex(a=>a.id===H.id)):0;return c?(0,w.jsx)("div",{className:"grid gap-4",children:[1,2,3].map(a=>(0,w.jsx)("div",{className:"h-36 animate-pulse rounded-2xl border border-border bg-surface"},a))}):(0,w.jsxs)("div",{className:"space-y-6",children:[(0,w.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",children:[(0,w.jsxs)("div",{children:[(0,w.jsx)("h1",{className:"text-2xl font-bold text-text-main",children:"Combo model"}),(0,w.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tạo combo model với fallback, round-robin, độ trễ thấp nhất, P2C v\xe0 routing theo trạng th\xe1i health của LAN Ollama."})]}),(0,w.jsxs)("button",{type:"button",onClick:A,className:"inline-flex items-center justify-center gap-2 rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add"}),"Tạo combo"]})]}),0===a.length?(0,w.jsxs)("div",{className:"rounded-2xl border border-dashed border-border bg-surface p-12 text-center",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-4xl text-text-muted",children:"layers"}),(0,w.jsx)("h2",{className:"mt-3 text-lg font-semibold text-text-main",children:"Chưa c\xf3 combo n\xe0o"}),(0,w.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tạo combo model c\xf3 hỗ trợ fallback."}),(0,w.jsx)("button",{type:"button",onClick:A,className:"mt-4 rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90",children:"Tạo combo"})]}):(0,w.jsxs)("div",{className:"space-y-4",children:[(0,w.jsx)("div",{className:"rounded-2xl border border-border bg-surface/80 p-4 shadow-sm dark:bg-zinc-950/70",children:(0,w.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-end lg:justify-between",children:[(0,w.jsxs)("label",{className:"block min-w-0 flex-1",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-semibold uppercase tracking-wide text-text-muted",children:"Combo đang xem"}),(0,w.jsx)("select",{value:H?.name||"",onChange:a=>r(a.target.value),className:"w-full rounded-xl border border-border bg-white px-4 py-2.5 text-sm font-semibold text-text-main outline-none transition focus:border-primary dark:bg-zinc-900",children:a.map(a=>(0,w.jsxs)("option",{value:a.name,children:[a.name," • ",(a.models||[]).length," model"]},a.id))})]}),(0,w.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs text-text-muted",children:[(0,w.jsxs)("span",{className:"rounded-full bg-background px-3 py-1 dark:bg-zinc-900",children:["Tổng ",a.length," combo"]}),H?(0,w.jsxs)("span",{className:"rounded-full bg-primary/10 px-3 py-1 font-medium text-primary",children:["Đang hiển thị: ",H.name]}):null]})]})}),H?(0,w.jsx)(cj,{combo:H,comboIndex:I,copied:u,onCopy:v,onEdit:()=>B(H),onDelete:()=>F(H.id),comboStrategy:o[H.name]||{},onUpdateComboStrategy:a=>G(H.name,a)},H.id):null]}),(0,w.jsx)(cq,{isOpen:e,comboStrategy:{},onClose:()=>f(!1),onSave:D,activeProviders:i,providersLoading:m}),(0,w.jsx)(cq,{isOpen:!!g,combo:g,comboStrategy:o[g?.name]||{},onClose:()=>h(null),onSave:a=>E(g.id,a),activeProviders:i,providersLoading:m}),(0,w.jsx)(bC.uo,{isOpen:!!s,onClose:()=>t(null),onConfirm:s?.onConfirm,title:s?.title||"X\xe1c nhận",message:s?.message,variant:"danger"})]})}function cj({combo:a,comboIndex:b=0,copied:c,onCopy:d,onEdit:e,onDelete:f,comboStrategy:g={},onUpdateComboStrategy:h}){let[i,j]=(0,x.useState)({}),[k,l]=(0,x.useState)(!1),[m,n]=(0,x.useState)(""),o=b0(g||{}),p=b0({...g||{},...i}),q=!function(a={},b={}){return b2(b1(a)||{})===b2(b1(b)||{})}(p,o),r=p.fallbackStrategy||"fallback",s=bI.find(a=>a.value===r)||bI[0],t=p.stickyScope||"global",u=bH.find(a=>a.value===t)||bH[0],v=b_(g),y=bJ[b%bJ.length],[z,A]=(0,x.useState)(b3(p.requiredTags)),[B,C]=(0,x.useState)(b5(p.modelTagRules)),D=a=>{n(""),j(b=>({...b,...a}))},E=async()=>{if(!q||k)return;l(!0);let a=await h(i);(l(!1),!1===a)?n("Lưu thất bại, thử lại."):j({})};return(0,x.useEffect)(()=>{A(b3(p.requiredTags)),C(b5(p.modelTagRules))},[a.name,JSON.stringify(p.requiredTags||[]),JSON.stringify(p.modelTagRules||{})]),(0,w.jsxs)("div",{className:`rounded-2xl border p-5 shadow-sm transition-colors ${y.card}`,children:[(0,w.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[(0,w.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,w.jsxs)("div",{className:"flex items-center gap-2",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-primary",children:"layers"}),(0,w.jsx)("h3",{className:"truncate text-lg font-semibold text-text-main",children:a.name})]}),(0,w.jsxs)("p",{className:"mt-1 text-sm text-text-muted",children:[(a.models||[]).length," model đang bật",v.length>0?` • ${v.length} đ\xe3 tắt`:""]})]}),(0,w.jsxs)("div",{className:"flex items-center gap-1",children:[(0,w.jsx)(ck,{icon:c===`combo-${a.id}`?"check":"content_copy",title:"Copy t\xean combo",onClick:()=>d(a.name,`combo-${a.id}`)}),(0,w.jsx)(ck,{icon:"edit",title:"Chỉnh sửa",onClick:e}),(0,w.jsx)(ck,{icon:"delete",title:"X\xf3a",onClick:f,danger:!0})]})]}),(0,w.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[0===(a.models||[]).length?(0,w.jsx)("span",{className:"rounded-lg bg-background px-2 py-1 text-xs text-text-muted",children:"Chưa c\xf3 model đang bật"}):(a.models||[]).slice(0,5).map((a,b)=>(0,w.jsx)("span",{className:"rounded-lg bg-background px-2 py-1 font-mono text-xs text-text-main",children:cb(a)},`${ca(a)}-${b}`)),(a.models||[]).length>5&&(0,w.jsxs)("span",{className:"rounded-lg bg-background px-2 py-1 text-xs text-text-muted",children:["+",a.models.length-5," model nữa"]}),v.length>0&&(0,w.jsxs)("span",{className:"rounded-lg bg-red-500/10 px-2 py-1 text-xs text-red-500",children:[v.length," đ\xe3 tắt"]}),(function(a={}){let b=bY(a),c=[];if(void 0!==b.temperature&&c.push(`temp ${b.temperature}`),void 0!==b.top_p&&c.push(`top_p ${b.top_p}`),void 0!==b.top_k&&c.push(`top_k ${b.top_k}`),void 0!==b.min_p&&c.push(`min_p ${b.min_p}`),void 0!==b.presence_penalty&&c.push(`presence ${b.presence_penalty}`),void 0!==b.max_tokens&&c.push(`max ${b.max_tokens}`),void 0!==b.reasoning_budget&&c.push(`reasoning ${b.reasoning_budget}`),"off"===b.thinkingMode&&c.push("thinking off"),"on"===b.thinkingMode&&c.push("thinking on"),!b.thinkingMode){let a=bZ(b.inheritThinkRequestOverrides),d=bZ(b.inheritNoThinkRequestOverrides);a.length&&c.push(`think: ${a.join(", ")}`),d.length&&c.push(`nothink: ${d.join(", ")}`)}return c})(o.requestOverrides).map(a=>(0,w.jsx)("span",{className:"rounded-lg bg-primary/10 px-2 py-1 text-xs font-medium text-primary",children:a},a)),"inherit"!==o.contentLoggingMode?(0,w.jsxs)("span",{className:`rounded-lg px-2 py-1 text-xs font-medium ${"disabled"===o.contentLoggingMode?"bg-amber-500/10 text-amber-600":"bg-emerald-500/10 text-emerald-600"}`,children:["prompt logs ",o.contentLoggingMode]}):null]}),(0,w.jsxs)("div",{className:`mt-5 rounded-xl border p-4 ${y.panel}`,children:[(0,w.jsxs)("div",{className:"flex flex-col gap-3 md:flex-row md:items-center md:justify-between",children:[(0,w.jsxs)("div",{children:[(0,w.jsx)("h4",{className:"font-semibold text-text-main",children:"Chiến lược routing"}),(0,w.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:s.description})]}),(0,w.jsx)("select",{value:r,onChange:a=>D({fallbackStrategy:a.target.value}),className:"rounded-lg border border-border bg-surface px-3 py-2 text-sm text-text-main outline-none focus:border-primary",children:bI.map(a=>(0,w.jsx)("option",{value:a.value,children:a.label},a.value))})]}),(0,w.jsx)(cp,{value:p.requestOverrides||{},onChange:a=>D({requestOverrides:a}),compact:!0}),(0,w.jsx)(cm,{value:p.contentLoggingMode,onChange:a=>D({contentLoggingMode:a}),compact:!0}),("least-latency"===r||"p2c"===r)&&(0,w.jsxs)("div",{className:"mt-4 rounded-xl border border-primary/15 bg-surface p-3",children:[(0,w.jsxs)("label",{className:"flex items-start gap-2 text-sm text-text-muted",children:[(0,w.jsx)("input",{type:"checkbox",checked:!1!==p.lanHealthEnabled,onChange:a=>D({lanHealthEnabled:a.target.checked}),className:"mt-0.5 h-3.5 w-3.5 accent-primary"}),(0,w.jsxs)("span",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Routing theo trạng th\xe1i health LAN"}),(0,w.jsx)("span",{className:"mt-1 block text-xs",children:"D\xf9ng dữ liệu health v\xe0 circuit breaker khi xếp hạng target trong combo."})]})]}),(0,w.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-2",children:[(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Đường dẫn health"}),(0,w.jsx)("input",{value:p.healthCheckPath||"/api/tags",onChange:a=>D({healthCheckPath:a.target.value||"/api/tags"}),placeholder:"/api/tags",className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"})]}),(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Chu kỳ kiểm tra (ms)"}),(0,w.jsx)("input",{type:"number",min:"1000",value:p.healthCheckIntervalMs||15e3,onChange:a=>D({healthCheckIntervalMs:Number(a.target.value)||15e3}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary"})]})]}),(0,w.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-2",children:[(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Tag endpoint bắt buộc"}),(0,w.jsx)("input",{value:z,onChange:a=>A(a.target.value),onBlur:()=>D({requiredTags:b4(z)}),onKeyDown:a=>"Enter"===a.key&&a.currentTarget.blur(),placeholder:"gpu, vram:8gb",className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"}),(0,w.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"Mọi endpoint được route đều phải c\xf3 c\xe1c tag n\xe0y."})]}),(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Quy tắc tag theo model"}),(0,w.jsx)("textarea",{value:B,onChange:a=>C(a.target.value),onBlur:()=>D({modelTagRules:function(a=""){let b={};for(let c of String(a||"").split(/\n+/)){let a=c.trim();if(!a)continue;let d=a.indexOf(":");if(-1===d)continue;let e=a.slice(0,d).trim(),f=b4(a.slice(d+1));e&&f.length&&(b[e]=f)}return b}(B)}),placeholder:"qwen3:32b: gpu, vram:16gb\nqwen3:8b: model_support:qwen3:8b",rows:3,className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"})]})]})]}),"round-robin"===r&&(0,w.jsxs)("div",{className:"mt-4 rounded-xl border border-primary/15 bg-surface p-3",children:[(0,w.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,w.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold text-primary",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"sticky_note_2"}),"Round Robin giữ d\xednh"]}),(0,w.jsxs)("label",{className:"flex items-center gap-2 text-xs text-text-muted",children:[(0,w.jsx)("input",{type:"checkbox",checked:"round-robin"===r,onChange:a=>D({fallbackStrategy:a.target.checked?"round-robin":"fallback"}),className:"h-3.5 w-3.5 accent-primary"}),"Bật"]})]}),(0,w.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Chế độ giữ d\xednh"}),(0,w.jsx)("select",{value:t,onChange:a=>D({stickyScope:a.target.value}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary",children:bH.map(a=>(0,w.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,w.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:u.description})]}),(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"TTL giữ d\xednh (ph\xfat)"}),(0,w.jsx)("input",{type:"number",min:"1",value:p.stickyTtlMinutes||120,onChange:a=>D({stickyTtlMinutes:Number(a.target.value)||120}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary"})]})]}),(0,w.jsxs)("label",{className:"mt-3 flex items-start gap-2 text-xs text-text-muted",children:[(0,w.jsx)("input",{type:"checkbox",checked:!1!==p.stickyFallbackToClientIp,onChange:a=>D({stickyFallbackToClientIp:a.target.checked}),className:"mt-0.5 h-3.5 w-3.5 accent-primary"}),"Nếu thiếu chat session id, fallback về IP client thay v\xec xoay to\xe0n cục."]})]}),(0,w.jsxs)("div",{className:"mt-4 flex flex-col gap-2 border-t border-border pt-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,w.jsx)("span",{className:`text-xs ${m?"text-red-500":q?"text-amber-600":"text-text-muted"}`,children:m||(q?"C\xf3 thay đổi chưa lưu — chỉ \xe1p dụng sau khi bấm Lưu.":"Đang \xe1p dụng cho request mới.")}),(0,w.jsxs)("div",{className:"flex items-center gap-2",children:[(0,w.jsx)("button",{type:"button",onClick:()=>{n(""),j({})},disabled:!q||k,className:"rounded-lg border border-border px-3 py-1.5 text-sm font-medium text-text-muted transition hover:text-text-main disabled:opacity-40",children:"Ho\xe0n t\xe1c"}),(0,w.jsxs)("button",{type:"button",onClick:E,disabled:!q||k,className:"inline-flex items-center gap-1.5 rounded-lg bg-primary px-4 py-1.5 text-sm font-medium text-white transition hover:opacity-90 disabled:opacity-40",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"save"}),k?"Đang lưu…":"Lưu thay đổi"]})]})]})]})]})}function ck({icon:a,title:b,onClick:c,danger:d=!1}){return(0,w.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),c?.()},className:`rounded-lg p-2 transition ${d?"text-red-500 hover:bg-red-500/10":"text-text-muted hover:bg-background hover:text-primary"}`,title:b,"aria-label":b,children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:a})})}function cl({id:a,index:b,model:c,subtitle:d="",enabled:e,isFirst:f,isLast:g,onEdit:h,onMoveUp:i,onMoveDown:j,onRemove:k,onToggleEnabled:l}){let{attributes:n,listeners:o,setNodeRef:p,transform:q,isDragging:r}=function(a){var b,c,d,e;let{animateLayoutChanges:f=br,attributes:g,disabled:h,data:i,getNewIndex:j=bq,id:k,strategy:l,resizeObserverConfig:n,transition:o=bs}=a,{items:p,containerId:q,activeIndex:r,disabled:s,disableTransforms:t,sortedRects:u,overIndex:v,useDragOverlay:w,strategy:y}=(0,x.useContext)(bo),z=(b=h,c=s,"boolean"==typeof b?{draggable:b,droppable:!1}:{draggable:null!=(d=null==b?void 0:b.draggable)?d:c.draggable,droppable:null!=(e=null==b?void 0:b.droppable)?e:c.droppable}),A=p.indexOf(k),B=(0,x.useMemo)(()=>({sortable:{containerId:q,index:A,items:p},...i}),[q,i,A,p]),C=(0,x.useMemo)(()=>p.slice(p.indexOf(k)),[p,k]),{rect:D,node:E,isOver:F,setNodeRef:G}=function(a){let{data:b,disabled:c=!1,id:d,resizeObserverConfig:e}=a,f=P("Droppable"),{active:g,dispatch:h,over:i,measureDroppableContainers:j}=(0,x.useContext)(a8),k=(0,x.useRef)({disabled:c}),l=(0,x.useRef)(!1),n=(0,x.useRef)(null),o=(0,x.useRef)(null),{disabled:p,updateMeasurementsFor:q,timeout:r}={...bh,...e},s=K(null!=q?q:d),t=aX({callback:(0,x.useCallback)(()=>{if(!l.current){l.current=!0;return}null!=o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{j(Array.isArray(s.current)?s.current:[s.current]),o.current=null},r)},[r]),disabled:p||!g}),[u,v]=M((0,x.useCallback)((a,b)=>{t&&(b&&(t.unobserve(b),l.current=!1),a&&t.observe(a))},[t])),w=K(b);return(0,x.useEffect)(()=>{t&&u.current&&(t.disconnect(),l.current=!1,t.observe(u.current))},[u,t]),(0,x.useEffect)(()=>(h({type:m.RegisterDroppable,element:{id:d,key:f,disabled:c,node:u,rect:n,data:w}}),()=>h({type:m.UnregisterDroppable,key:f,id:d})),[d]),(0,x.useEffect)(()=>{c!==k.current.disabled&&(h({type:m.SetDroppableDisabled,id:d,key:f,disabled:c}),k.current.disabled=c)},[d,f,c,h]),{active:g,rect:n,isOver:(null==i?void 0:i.id)===d,node:u,over:i,setNodeRef:v}}({id:k,data:B,disabled:z.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...n}}),{active:H,activatorEvent:J,activeNodeRect:L,attributes:N,setNodeRef:O,listeners:Q,isDragging:R,over:S,setActivatorNodeRef:U,transform:W}=function(a){let{id:b,data:c,disabled:d=!1,attributes:e}=a,f=P("Draggable"),{activators:g,activatorEvent:h,active:i,activeNodeRect:j,ariaDescribedById:k,draggableNodes:l,over:m}=(0,x.useContext)(a8),{role:n=bg,roleDescription:o="draggable",tabIndex:p=0}=null!=e?e:{},q=(null==i?void 0:i.id)===b,r=(0,x.useContext)(q?bd:bf),[s,t]=M(),[u,v]=M(),w=(0,x.useMemo)(()=>g.reduce((a,c)=>{let{eventName:d,handler:e}=c;return a[d]=a=>{e(a,b)},a},{}),[g,b]),y=K(c);return I(()=>(l.set(b,{id:b,key:f,node:s,activatorNode:u,data:y}),()=>{let a=l.get(b);a&&a.key===f&&l.delete(b)}),[l,b]),{active:i,activatorEvent:h,activeNodeRect:j,attributes:(0,x.useMemo)(()=>({role:n,tabIndex:p,"aria-disabled":d,"aria-pressed":!!q&&n===bg||void 0,"aria-roledescription":o,"aria-describedby":k.draggable}),[d,n,p,q,o,k.draggable]),isDragging:q,listeners:d?void 0:w,node:s,over:m,setNodeRef:t,setActivatorNodeRef:v,transform:r}}({id:k,data:B,attributes:{...bv,...g},disabled:z.draggable}),X=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,x.useMemo)(()=>a=>{b.forEach(b=>b(a))},b)}(G,O),Y=!!H,Z=Y&&!t&&bj(r)&&bj(v),$=!w&&R,_=$&&Z?W:null,aa=Z?null!=_?_:(null!=l?l:y)({rects:u,activeNodeRect:L,activeIndex:r,overIndex:v,index:A}):null,ab=bj(r)&&bj(v)?j({id:k,items:p,activeIndex:r,overIndex:v}):A,ac=null==H?void 0:H.id,ad=(0,x.useRef)({activeId:ac,items:p,newIndex:ab,containerId:q}),ae=p!==ad.current.items,af=f({active:H,containerId:q,isDragging:R,isSorting:Y,id:k,index:A,items:p,newIndex:ad.current.newIndex,previousItems:ad.current.items,previousContainerId:ad.current.containerId,transition:o,wasDragging:null!=ad.current.activeId}),ag=function(a){let{disabled:b,index:c,node:d,rect:e}=a,[f,g]=(0,x.useState)(null),h=(0,x.useRef)(c);return I(()=>{if(!b&&c!==h.current&&d.current){let a=e.current;if(a){let b=aq(d.current,{ignoreTransform:!0}),c={x:a.left-b.left,y:a.top-b.top,scaleX:a.width/b.width,scaleY:a.height/b.height};(c.x||c.y)&&g(c)}}c!==h.current&&(h.current=c)},[b,c,d,e]),(0,x.useEffect)(()=>{f&&g(null)},[f]),f}({disabled:!af,index:A,node:E,rect:D});return(0,x.useEffect)(()=>{Y&&ad.current.newIndex!==ab&&(ad.current.newIndex=ab),q!==ad.current.containerId&&(ad.current.containerId=q),p!==ad.current.items&&(ad.current.items=p)},[Y,ab,q,p]),(0,x.useEffect)(()=>{if(ac===ad.current.activeId)return;if(ac&&!ad.current.activeId){ad.current.activeId=ac;return}let a=setTimeout(()=>{ad.current.activeId=ac},50);return()=>clearTimeout(a)},[ac]),{active:H,activeIndex:r,attributes:N,data:B,rect:D,index:A,newIndex:ab,items:p,isOver:F,isSorting:Y,isDragging:R,listeners:Q,node:E,overIndex:v,over:S,setNodeRef:X,setActivatorNodeRef:U,setDroppableNodeRef:G,setDraggableNodeRef:O,transform:null!=ag?ag:aa,transition:ag||ae&&ad.current.newIndex===A?bu:(!$||T(J))&&o&&(Y||af)?V.Transition.toString({...o,property:bt}):void 0}}({id:a}),s={transform:V.Transform.toString(q),opacity:r?.4:1,zIndex:r?999:void 0},[t,u]=(0,x.useState)(!1),[v,y]=(0,x.useState)(c),z=()=>{let a=v.trim();a&&a!==c?h(a):y(c),u(!1)};return(0,w.jsxs)("div",{ref:p,style:s,className:`flex items-center gap-3 rounded-xl border p-3 transition ${e?"border-border bg-background":"border-red-200 bg-red-50/70 opacity-75 dark:border-red-500/30 dark:bg-red-500/10"}`,children:[(0,w.jsx)("button",{type:"button",className:"cursor-grab text-text-muted active:cursor-grabbing",...n,...o,title:"K\xe9o để sắp xếp lại",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"drag_indicator"})}),(0,w.jsx)("span",{className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-semibold ${e?"bg-primary/10 text-primary":"bg-red-100 text-red-600 dark:bg-red-500/20 dark:text-red-300"}`,children:b+1}),t?(0,w.jsx)("input",{autoFocus:!0,value:v,onChange:a=>y(a.target.value),onBlur:z,onKeyDown:a=>{"Enter"===a.key&&z(),"Escape"===a.key&&(y(c),u(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-background px-2 py-1 font-mono text-xs text-text-main outline-none"}):(0,w.jsxs)("button",{type:"button",onClick:()=>u(!0),className:"min-w-0 flex-1 text-left",title:"Bấm để sửa model",children:[(0,w.jsx)("span",{className:`block truncate font-mono text-xs ${e?"text-text-main":"text-text-muted line-through"}`,children:c}),d?(0,w.jsx)("span",{className:"mt-0.5 block truncate text-[11px] text-text-muted",children:d}):null]}),(0,w.jsx)("button",{type:"button",onClick:l,className:`rounded-lg p-1.5 transition ${e?"text-green-600 hover:bg-green-500/10":"text-red-500 hover:bg-red-500/10"}`,title:e?"Tắt model trong combo":"Bật model trong combo",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:e?"toggle_on":"toggle_off"})}),(0,w.jsx)("button",{type:"button",onClick:i,disabled:f,className:"rounded-lg p-1.5 text-text-muted transition hover:bg-surface disabled:opacity-30",title:"Di chuyển l\xean",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"arrow_upward"})}),(0,w.jsx)("button",{type:"button",onClick:j,disabled:g,className:"rounded-lg p-1.5 text-text-muted transition hover:bg-surface disabled:opacity-30",title:"Di chuyển xuống",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"arrow_downward"})}),(0,w.jsx)("button",{type:"button",onClick:k,className:"rounded-lg p-1.5 text-red-500 transition hover:bg-red-500/10",title:"X\xf3a",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]})}function cm({value:a="inherit",onChange:b,compact:c=!1}){let d=bV(a),e=bQ.find(a=>a.value===d)||bQ[0];return(0,w.jsx)("div",{className:c?"mt-4 rounded-xl border border-amber-500/15 bg-surface p-3":"rounded-xl border border-amber-500/15 bg-amber-500/5 p-4",children:(0,w.jsxs)("div",{className:"grid gap-3 md:grid-cols-[minmax(0,1fr)_280px] md:items-center",children:[(0,w.jsxs)("div",{children:[(0,w.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px] text-amber-500",children:"manage_search"}),"Prompt Logs cho combo n\xe0y"]}),(0,w.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:e.description}),"disabled"===d?(0,w.jsx)("p",{className:"mt-1 text-[11px] font-medium text-amber-600",children:"Khi chạy request, Prompt Logs sẽ chỉ ghi metadata v\xe0 hiển thị [promptlogs disabled on this combo]."}):null]}),(0,w.jsx)("select",{value:d,onChange:a=>b?.(bV(a.target.value)),className:"w-full rounded-lg border border-border bg-surface px-3 py-2 text-sm text-text-main outline-none focus:border-primary",children:bQ.map(a=>(0,w.jsx)("option",{value:a.value,children:a.label},a.value))})]})})}function cn({icon:a,label:b,children:c,active:d,muted:e=!1,className:f=""}){return(0,w.jsxs)("label",{className:`rounded-lg border p-3 transition ${d?"border-primary/30 bg-background shadow-sm":"border-border bg-background/60"} ${f}`,children:[(0,w.jsxs)("span",{className:"mb-2 flex items-center justify-between gap-2 text-xs font-medium text-text-main",children:[(0,w.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,w.jsx)("span",{className:`material-symbols-outlined text-[16px] ${d?"text-primary":"text-text-muted"}`,children:a}),(0,w.jsx)("span",{className:"truncate",children:b})]}),c?.toggle]}),c?.control,c?.hint?(0,w.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:c.hint}):null]})}function co({icon:a,title:b,values:c={},defaults:d={},onToggleField:e,onChangeField:f,inputClass:g}){let h=Object.keys(c||{}).length>0;return(0,w.jsxs)("div",{className:`rounded-lg border p-2 transition ${h?"border-primary/30 bg-background":"border-border bg-background/60"}`,children:[(0,w.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 text-[11px] font-semibold text-text-main",children:[(0,w.jsx)("span",{className:`material-symbols-outlined text-[15px] ${h?"text-primary":"text-text-muted"}`,children:a}),(0,w.jsx)("span",{className:"truncate",children:b})]}),(0,w.jsx)("div",{className:"grid gap-2 sm:grid-cols-2 xl:grid-cols-3",children:bO.map(a=>{let b=c?.[a.key]!==void 0;return(0,w.jsxs)("label",{className:"space-y-1",children:[(0,w.jsxs)("span",{className:"flex items-center justify-between gap-1 text-[11px] font-medium text-text-main",children:[(0,w.jsx)("span",{className:"truncate",children:a.label}),(0,w.jsx)("input",{type:"checkbox",checked:b,onChange:b=>e?.(a.key,b.target.checked,d[a.key]),className:"h-3.5 w-3.5 accent-primary"})]}),(0,w.jsx)("input",{type:"number",min:a.min,max:a.max,step:a.step,disabled:!b,value:b?c[a.key]:d[a.key],onChange:b=>f?.(a.key,b.target.value),className:g})]},a.key)})})]})}function cp({value:a={},onChange:b,compact:c=!1}){let d=bY(a),e=void 0!==d.temperature,f=void 0!==d.top_p,g=void 0!==d.top_k,h=void 0!==d.min_p,i=void 0!==d.presence_penalty,j=void 0!==d.max_tokens,k=void 0!==d.reasoning_budget,l=d.thinkingMode||"inherit",m="inherit"!==l,n="off"===l,o=d.inheritThinkRequestOverrides||{},p=d.inheritNoThinkRequestOverrides||{},q=Object.keys(o).length>0||Object.keys(p).length>0,r=e||f||g||h||i||j||!m&&q,s=m||k,t=a=>{b?.(bY({...d,...a}))},u=(a,c,e)=>{if(!c){let c={...d};delete c[a],b?.(bY(c));return}t({[a]:e})},v=(a,b,c,e)=>{let f=bN[a],g={...d[f]||{}};if(!c){delete g[b],t({[f]:g});return}g[b]=e,t({[f]:bX(g)})},x=(a,b,c)=>{let e=bN[a];t({[e]:bX({...d[e]||{},[b]:c})})},y="w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary disabled:opacity-50";return(0,w.jsxs)("div",{className:c?"mt-4 rounded-xl border border-sky-500/15 bg-surface p-3":"rounded-xl border border-sky-500/15 bg-sky-500/5 p-4",children:[(0,w.jsxs)("div",{className:"mb-3 flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between",children:[(0,w.jsxs)("div",{children:[(0,w.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px] text-sky-500",children:"tune"}),"Tham số request Local endpoint"]}),(0,w.jsxs)("p",{className:"mt-1 text-xs text-text-muted",children:["Chỉ inject khi combo route 100% tới local endpoint: ",(0,w.jsx)("span",{className:"font-mono",children:"llama.cpp"}),", ",(0,w.jsx)("span",{className:"font-mono",children:"vLLM"})," hoặc ",(0,w.jsx)("span",{className:"font-mono",children:"Ollama"}),". Nếu combo mix local + cloud/provider kh\xe1c, BlueRouter bỏ qua block n\xe0y v\xe0 giữ nguy\xean request gốc."]})]}),!function(a={}){return Object.keys(bY(a)).length>0}(d)?(0,w.jsx)("span",{className:"inline-flex shrink-0 items-center rounded-full bg-background px-2 py-1 text-[11px] font-semibold text-text-muted",children:"Kh\xf4ng override"}):(0,w.jsx)("span",{className:"inline-flex shrink-0 items-center rounded-full bg-primary/10 px-2 py-1 text-[11px] font-semibold text-primary",children:"C\xf3 override"})]}),(0,w.jsxs)("div",{className:"grid gap-3 xl:grid-cols-2",children:[(0,w.jsxs)("div",{className:`rounded-xl border p-3 ${r?"border-primary/20 bg-primary/5":"border-border bg-background/40"}`,children:[(0,w.jsxs)("div",{className:"mb-3 flex items-center gap-2 text-xs font-semibold text-primary",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"graphic_eq"}),"Sampling ",(0,w.jsx)("span",{className:"font-normal text-text-muted",children:"(điều khiển lựa chọn token)"})]}),m?(0,w.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 2xl:grid-cols-3",children:[(0,w.jsx)(cn,{icon:"thermostat",label:"Temperature",active:e,children:{toggle:(0,w.jsx)("input",{type:"checkbox",checked:e,onChange:a=>u("temperature",a.target.checked,bK.temperature),className:"h-3.5 w-3.5 accent-primary"}),control:(0,w.jsx)("input",{type:"number",min:"0",max:"2",step:"0.05",disabled:!e,value:e?d.temperature:bK.temperature,onChange:a=>t({temperature:a.target.value}),className:y}),hint:"0 = ổn định, 2 = s\xe1ng tạo."}}),(0,w.jsx)(cn,{icon:"filter_alt",label:"top_p",active:f,children:{toggle:(0,w.jsx)("input",{type:"checkbox",checked:f,onChange:a=>u("top_p",a.target.checked,bK.top_p),className:"h-3.5 w-3.5 accent-primary"}),control:(0,w.jsx)("input",{type:"number",min:"0.01",max:"1",step:"0.01",disabled:!f,value:f?d.top_p:bK.top_p,onChange:a=>t({top_p:a.target.value}),className:y}),hint:"0.01–1.0; 0.9–0.95 thường hợp coder/chat."}}),(0,w.jsx)(cn,{icon:"filter_list",label:"top_k",active:g,children:{toggle:(0,w.jsx)("input",{type:"checkbox",checked:g,onChange:a=>u("top_k",a.target.checked,bK.top_k),className:"h-3.5 w-3.5 accent-primary"}),control:(0,w.jsx)("input",{type:"number",min:"0",max:"1000",step:"1",disabled:!g,value:g?d.top_k:bK.top_k,onChange:a=>t({top_k:a.target.value}),className:y}),hint:"Qwen3 khuyến nghị 20. Chỉ gửi tới llama.cpp/vLLM."}}),(0,w.jsx)(cn,{icon:"vertical_align_bottom",label:"min_p",active:h,children:{toggle:(0,w.jsx)("input",{type:"checkbox",checked:h,onChange:a=>u("min_p",a.target.checked,bK.min_p),className:"h-3.5 w-3.5 accent-primary"}),control:(0,w.jsx)("input",{type:"number",min:"0",max:"1",step:"0.01",disabled:!h,value:h?d.min_p:bK.min_p,onChange:a=>t({min_p:a.target.value}),className:y}),hint:"Qwen3 khuyến nghị 0. Chỉ gửi tới llama.cpp/vLLM."}}),(0,w.jsx)(cn,{icon:"repeat",label:"presence_penalty",active:i,children:{toggle:(0,w.jsx)("input",{type:"checkbox",checked:i,onChange:a=>u("presence_penalty",a.target.checked,bK.presence_penalty),className:"h-3.5 w-3.5 accent-primary"}),control:(0,w.jsx)("input",{type:"number",min:"-2",max:"2",step:"0.05",disabled:!i,value:i?d.presence_penalty:bK.presence_penalty,onChange:a=>t({presence_penalty:a.target.value}),className:y}),hint:"-2–2; coder thường để 0, chỉ tăng nhẹ nếu hay lặp."}}),(0,w.jsx)(cn,{icon:"output",label:"max_tokens",active:j,className:"sm:col-span-2 2xl:col-span-1",children:{toggle:(0,w.jsx)("input",{type:"checkbox",checked:j,onChange:a=>u("max_tokens",a.target.checked,bK.max_tokens),className:"h-3.5 w-3.5 accent-primary"}),control:(0,w.jsx)("input",{type:"number",min:"1",max:"262144",step:"1",disabled:!j,value:j?d.max_tokens:bK.max_tokens,onChange:a=>t({max_tokens:a.target.value}),className:y}),hint:"Giới hạn output cho request."}})]}):(0,w.jsxs)("div",{className:"space-y-2",children:[(0,w.jsxs)("div",{className:"grid gap-3 2xl:grid-cols-2",children:[(0,w.jsx)(co,{icon:"psychology",title:"Khi request bật thinking",values:o,defaults:bL,onToggleField:(a,b,c)=>v("think",a,b,c),onChangeField:(a,b)=>x("think",a,b),inputClass:y}),(0,w.jsx)(co,{icon:"bolt",title:"Khi request tắt thinking",values:p,defaults:bM,onToggleField:(a,b,c)=>v("nothink",a,b,c),onChangeField:(a,b)=>x("nothink",a,b),inputClass:y})]}),(0,w.jsx)("span",{className:"block text-[11px] text-text-muted",children:"Thinking đang theo request gốc n\xean mỗi nh\xe1nh c\xf3 bộ sampling ri\xeang, chọn theo đ\xfang cờ thinking client gửi l\xean. Request kh\xf4ng khai b\xe1o thinking t\xednh l\xe0 tắt. Field kh\xf4ng tick th\xec giữ nguy\xean gi\xe1 trị client gửi. top_k/min_p chỉ gửi tới llama.cpp v\xe0 vLLM."})]})]}),(0,w.jsxs)("div",{className:`rounded-xl border p-3 ${s?"border-primary/20 bg-primary/5":"border-border bg-background/40"}`,children:[(0,w.jsxs)("div",{className:"mb-3 flex items-center gap-2 text-xs font-semibold text-primary",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"psychology"}),"Thinking ",(0,w.jsx)("span",{className:"font-normal text-text-muted",children:"(suy luận nội bộ)"})]}),(0,w.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,w.jsxs)("label",{className:`rounded-lg border p-3 transition ${m?"border-primary/30 bg-background shadow-sm":"border-border bg-background/60"}`,children:[(0,w.jsxs)("span",{className:"mb-2 flex items-center gap-1.5 text-xs font-medium text-text-main",children:[(0,w.jsx)("span",{className:`material-symbols-outlined text-[16px] ${m?"text-primary":"text-text-muted"}`,children:"psychology_alt"}),"Thinking"]}),(0,w.jsx)("select",{value:l,onChange:a=>(a=>{if("inherit"===a)return void t({thinkingMode:void 0});let c="on"===a?o:p;b?.(bY({...d,...c,inheritThinkRequestOverrides:{},inheritNoThinkRequestOverrides:{},thinkingMode:a}))})(a.target.value),className:"w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary",children:bP.map(a=>(0,w.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,w.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:bP.find(a=>a.value===l)?.description||bP[0].description})]}),(0,w.jsx)(cn,{icon:"account_balance_wallet",label:"reasoning_budget",active:k,className:n?"opacity-60":"",children:{toggle:(0,w.jsx)("input",{type:"checkbox",checked:k,disabled:n,onChange:a=>u("reasoning_budget",a.target.checked,bK.reasoning_budget),className:"h-3.5 w-3.5 accent-primary disabled:opacity-50"}),control:(0,w.jsx)("input",{type:"number",min:"0",max:"262144",step:"1",disabled:n||!k,value:k?d.reasoning_budget:bK.reasoning_budget,onChange:a=>t({reasoning_budget:a.target.value}),className:y}),hint:n?"Thinking đang tắt n\xean budget kh\xf4ng được gửi.":"Chỉ d\xf9ng cho llama.cpp/vLLM local; runtime sẽ map đ\xfang field."}})]})]})]})]})}function cq({isOpen:a,combo:b,comboStrategy:c={},onClose:d,onSave:e,activeProviders:f,providersLoading:g=!1,kindFilter:h=null}){let[i,j]=(0,x.useState)(b?.name||""),[k,l]=(0,x.useState)([]),[m,n]=(0,x.useState)(!1),[o,p]=(0,x.useState)(!1),[q,r]=(0,x.useState)(""),[s,t]=(0,x.useState)({}),[u,v]=(0,x.useState)(""),[y,z]=(0,x.useState)(""),[A,B]=(0,x.useState)(()=>b?bY(c?.requestOverrides||{}):bY(bK)),[C,D]=(0,x.useState)(()=>bV(c?.contentLoggingMode)),E=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,x.useMemo)(()=>[...b].filter(a=>null!=a),[...b])}(ad(aP,{activationConstraint:{distance:5}}),ad(aK,{coordinateGetter:by})),F=k.map((a,b)=>({uid:`item-${b}-${a.value}`,row:a})),G=k.map(a=>a.value),H=k.filter(a=>a.enabled).length,I=k.filter(a=>!a.enabled).length,J=(f||[]).filter(a=>a?.isActive!==!1),K=J.find(a=>a.id===u)||null,L=K?cg(K,s):[],M=L[0]?.value||(K?ce(K):""),N=a=>a.trim()?bG.test(a)?(r(""),!0):(r("Chỉ cho ph\xe9p chữ, số, dấu -, _ v\xe0 ."),!1):(r("Bắt buộc nhập t\xean"),!1),O=async()=>{if(!N(i))return;let{models:a,disabledModels:b}=function(a=[]){let b=[],c=new Set;for(let d of a){let a=b$(d?.value||ca(d?.target));!a||c.has(a)||(c.add(a),b.push({...d,value:a,enabled:d?.enabled!==!1,target:cc(d?.target||d?.value)}))}return{models:b.filter(a=>a.enabled).map(a=>a.target).filter(Boolean),disabledModels:b.filter(a=>!a.enabled).map(a=>a.value)}}(k);p(!0),await e({name:i.trim(),models:a,disabledModels:b,requestOverrides:bY(A),contentLoggingMode:C}),p(!1)};if(!a)return null;let P=!!b;return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/45 p-3 backdrop-blur-[1px] sm:p-4",children:(0,w.jsxs)("div",{className:"flex max-h-[92vh] w-full max-w-7xl flex-col overflow-hidden rounded-2xl border border-border bg-white shadow-2xl dark:bg-zinc-950",children:[(0,w.jsxs)("div",{className:"flex items-start justify-between border-b border-border px-5 py-4 sm:px-6",children:[(0,w.jsxs)("div",{children:[(0,w.jsx)("h2",{className:"text-xl font-semibold text-text-main",children:P?"Chỉnh sửa combo":"Tạo combo"}),(0,w.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Chọn model, tắt tạm thời khi cần v\xe0 sắp xếp thứ tự ưu ti\xean fallback đang bật."})]}),(0,w.jsx)("button",{type:"button",onClick:d,className:"rounded-lg p-1 text-text-muted transition hover:bg-surface hover:text-text-main",children:(0,w.jsx)("span",{className:"material-symbols-outlined",children:"close"})})]}),(0,w.jsxs)("div",{className:"min-h-0 flex-1 space-y-5 overflow-y-auto bg-white px-5 py-4 dark:bg-zinc-950 sm:px-6",children:[(0,w.jsxs)("label",{className:"block",children:[(0,w.jsx)("span",{className:"mb-2 block text-sm font-semibold text-text-main",children:"T\xean"}),(0,w.jsx)("input",{value:i,onChange:a=>{let b=a.target.value;j(b),b?N(b):r("")},placeholder:"premium-coding",className:`w-full rounded-xl border bg-white px-4 py-2.5 text-text-main outline-none transition focus:border-primary dark:bg-zinc-900 ${q?"border-red-400":"border-border"}`}),(0,w.jsx)("span",{className:`mt-1 block text-xs ${q?"text-red-500":"text-text-muted"}`,children:q||"Chỉ cho ph\xe9p chữ, số, dấu -, _ v\xe0 ."})]}),(0,w.jsx)(cp,{value:A,onChange:B,defaultEnabled:!P}),(0,w.jsx)(cm,{value:C,onChange:D}),(0,w.jsxs)("div",{children:[(0,w.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,w.jsxs)("div",{children:[(0,w.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"Danh s\xe1ch model"}),(0,w.jsxs)("p",{className:"mt-1 text-xs text-text-muted",children:[H," đang bật",I>0?`, ${I} đ\xe3 tắt`:"",". Model đ\xe3 tắt vẫn nằm trong combo nhưng kh\xf4ng được route."]})]}),(0,w.jsxs)("button",{type:"button",onClick:()=>n(!0),className:"inline-flex items-center gap-1 rounded-lg border border-border px-3 py-1.5 text-xs font-medium text-primary hover:border-primary/50",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add"}),"Th\xeam model"]})]}),(0,w.jsxs)("div",{className:"mb-4 rounded-xl border border-primary/15 bg-primary/5 p-3",children:[(0,w.jsxs)("div",{className:"mb-2 flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-primary",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"account_tree"}),"Th\xeam target theo provider account"]}),(0,w.jsx)("p",{className:"mb-3 text-xs text-text-muted",children:"Cố định bước combo n\xe0y v\xe0o một provider account cụ thể. Danh s\xe1ch account chỉ được load khi mở modal để trang combo nhẹ hơn."}),(0,w.jsxs)("div",{className:"grid gap-2 md:grid-cols-[minmax(0,1.5fr)_minmax(0,1fr)_auto]",children:[(0,w.jsxs)("select",{value:u,onChange:a=>{let b=a.target.value,c=J.find(a=>a.id===b),d=c?cg(c,s):[];v(b),z(d[0]?.value||ce(c||{})||"")},className:"min-w-0 rounded-lg border border-border bg-background px-3 py-2 text-xs text-text-main outline-none focus:border-primary",children:[(0,w.jsx)("option",{value:"",children:g?"Đang tải provider account...":"Chọn provider account"}),J.map(a=>{let b=b7(a),c=b8(a),d=c&&c!==b?`${b} / ${c}`:b;return(0,w.jsx)("option",{value:a.id,children:d},a.id)})]}),(0,w.jsxs)("select",{value:y,onChange:a=>z(a.target.value),disabled:!u||0===L.length,className:"min-w-0 rounded-lg border border-border bg-background px-3 py-2 font-mono text-xs text-text-main outline-none focus:border-primary disabled:cursor-not-allowed disabled:opacity-60",children:[(0,w.jsx)("option",{value:"",children:u?L.length>0?"Chọn model":"Kh\xf4ng t\xecm thấy model của provider":"Chọn account trước"}),L.map(a=>(0,w.jsx)("option",{value:a.value,children:a.label},`${a.value}-${a.label}`))]}),(0,w.jsxs)("button",{type:"button",onClick:()=>{if(!K)return;let a=function(a,b){let c=b7(a),d=function(a={}){let b=b$(a.provider),c=b7(a);return(0,bF.mq)(b)||(0,bF.gb)(b)?c||b:b||c}(a),e=b8(a),f=b$(b||ce(a));if(!c||!a?.id||!f)return null;let g=f.includes("/"),h=g?f:`${c}/${f}`,i=g&&f.startsWith(`${c}/`)?f.slice(c.length+1):f,j=e&&e!==d?`${d}/${e}/${i}`:`${d}/${i}`;return{model:h,connectionId:a.id,provider:d||c,accountName:e||void 0,label:j}}(K,y||M);if(!a)return void alert("H\xe3y chọn provider account v\xe0 model cho target cố định n\xe0y.");let b=cd(a,!0);l(a=>{let c=a.findIndex(a=>a.value===b.value);if(-1!==c){let d=[...a];return d[c]={...d[c],...b,enabled:!0},d}return[...a,b]}),z("")},disabled:!u||!y,className:"inline-flex items-center justify-center gap-1 rounded-lg bg-primary px-3 py-2 text-xs font-semibold text-white disabled:opacity-50",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add_link"}),"Th\xeam account"]})]})]}),0===k.length?(0,w.jsxs)("div",{className:"rounded-xl border border-dashed border-border p-8 text-center text-text-muted",children:[(0,w.jsx)("span",{className:"material-symbols-outlined",children:"layers"}),(0,w.jsx)("p",{className:"mt-2 text-sm",children:"Chưa th\xeam model n\xe0o"})]}):(0,w.jsx)(be,{sensors:E,collisionDetection:al,modifiers:[bB,bA],onDragEnd:a=>{let{active:b,over:c}=a;if(c&&b.id!==c.id){let a=F.findIndex(a=>a.uid===b.id),d=F.findIndex(a=>a.uid===c.id);-1!==a&&-1!==d&&l(b=>bi(b,a,d))}},children:(0,w.jsx)(bp,{items:F.map(a=>a.uid),strategy:bm,children:(0,w.jsx)("div",{className:"space-y-3",children:F.map(({uid:a,row:b},c)=>(0,w.jsx)(cl,{id:a,index:c,model:b.label||b.value,subtitle:b.subtitle,enabled:b.enabled,isFirst:0===c,isLast:c===k.length-1,onEdit:a=>{let b=a.trim();if(!b)return;let d=[...k],e=d[c];if(e?.target&&"object"==typeof e.target){let a=cc({...e.target,model:b});d[c]=cd(a,!1!==e.enabled)}else d[c]=cd(b,e?.enabled!==!1);l(d)},onMoveUp:()=>{if(0===c)return;let a=[...k];[a[c-1],a[c]]=[a[c],a[c-1]],l(a)},onMoveDown:()=>{if(c===k.length-1)return;let a=[...k];[a[c],a[c+1]]=[a[c+1],a[c]],l(a)},onToggleEnabled:()=>{let a=[...k];a[c]={...a[c],enabled:!a[c].enabled},l(a)},onRemove:()=>l(k.filter((a,b)=>b!==c))},a))})})})]})]}),(0,w.jsxs)("div",{className:"flex justify-end gap-3 border-t border-border bg-white px-5 py-4 dark:bg-zinc-950 sm:px-6",children:[(0,w.jsx)("button",{type:"button",onClick:d,className:"rounded-xl border border-border px-4 py-2 text-sm font-medium text-text-main hover:bg-surface",children:"Hủy"}),(0,w.jsx)("button",{type:"button",onClick:O,disabled:o,className:"rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90 disabled:opacity-50",children:o?"Đang lưu...":P?"Lưu":"Tạo"})]})]})}),(0,w.jsx)(bC.rq,{isOpen:m,onClose:()=>n(!1),onSelect:a=>{let b=a.value;l(a=>{let c=a.findIndex(a=>a.value===b);if(-1!==c){let b=[...a];return b[c]={...b[c],enabled:!0},b}return[...a,cd(b,!0)]})},onDeselect:a=>{l(b=>b.filter(b=>b.value!==a.value))},activeProviders:f,modelAliases:s,title:"Th\xeam model v\xe0o combo",kindFilter:h,addedModelValues:G,closeOnSelect:!1})]})}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19771:a=>{"use strict";a.exports=require("process")},20503:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(91488),g=c(20445),h=c(29294),i=c(43014);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},21820:a=>{"use strict";a.exports=require("os")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34631:a=>{"use strict";a.exports=require("tls")},35447:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"D:\\\\bluerouter\\\\src\\\\app\\\\(dashboard)\\\\dashboard\\\\combos\\\\page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\combos\\page.js","default")},38522:a=>{"use strict";a.exports=require("node:zlib")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41204:a=>{"use strict";a.exports=require("string_decoder")},43014:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ActionDidNotRevalidate:function(){return e},ActionDidRevalidateDynamicOnly:function(){return g},ActionDidRevalidateStaticAndDynamic:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=1,g=2},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46293:a=>{"use strict";a.exports=require("sql.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53048:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>w,handler:()=>y,routeModule:()=>x});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,32059))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,30508))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),t=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),u={children:["",{children:["(dashboard)",{children:["dashboard",{children:["combos",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,35447))),"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\combos\\page.js"]}]},{"global-error":[t,"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[s,"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[n,"D:\\bluerouter\\src\\app\\(dashboard)\\layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"D:\\bluerouter\\src\\app\\layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,v=(0,e.H)({tree:u,page:"/(dashboard)/dashboard/combos/page",pathname:"/dashboard/combos",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),w=v.__next_app__,x=v.routeModule,y=v.handler},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64939:a=>{"use strict";a.exports=import("pg")},66136:a=>{"use strict";a.exports=require("timers")},73024:a=>{"use strict";a.exports=require("node:fs")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},79428:a=>{"use strict";a.exports=require("buffer")},79748:a=>{"use strict";a.exports=require("fs/promises")},80099:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},89768:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(c(91986));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},91645:a=>{"use strict";a.exports=require("net")},92305:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestApiAllowedInCurrentPhase:function(){return k},throwForSearchParamsAccessInUseCache:function(){return j},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(19121),h=c(3295);function i(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function j(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function k(a){switch(a.phase){case"action":case"render":return!0;case"after":{let a=g.actionAsyncStorage.getStore();if(a&&(a.isAppRoute||a.isAction))return!0;let b=h.afterTaskAsyncStorage.getStore();if(b)return"action"===b.rootTaskSpawnPhase;return!1}}}},93443:(a,b,c)=>{Promise.resolve().then(c.bind(c,18513))},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,2430,8316,8946,402,5681,4404,6064,2428,8640],()=>b(b.s=53048));module.exports=c})();
|