profclaw 0.0.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +215 -0
- package/CHANGELOG.md +49 -0
- package/CONTRIBUTING.md +119 -0
- package/Dockerfile +107 -0
- package/LICENSE +661 -0
- package/README.md +196 -0
- package/config/agents.yml +55 -0
- package/config/budget.yml +15 -0
- package/config/pricing.yml +46 -0
- package/config/settings.yml +168 -0
- package/dist/adapters/claude-code.d.ts +46 -0
- package/dist/adapters/claude-code.js +215 -0
- package/dist/adapters/index.d.ts +4 -0
- package/dist/adapters/index.js +4 -0
- package/dist/adapters/ollama.d.ts +45 -0
- package/dist/adapters/ollama.js +277 -0
- package/dist/adapters/openclaw.d.ts +60 -0
- package/dist/adapters/openclaw.js +289 -0
- package/dist/adapters/registry.d.ts +56 -0
- package/dist/adapters/registry.js +163 -0
- package/dist/agents/executor.d.ts +78 -0
- package/dist/agents/executor.js +657 -0
- package/dist/agents/index.d.ts +10 -0
- package/dist/agents/index.js +27 -0
- package/dist/agents/stop-conditions.d.ts +108 -0
- package/dist/agents/stop-conditions.js +299 -0
- package/dist/agents/types.d.ts +185 -0
- package/dist/agents/types.js +14 -0
- package/dist/ai/embedding-service.d.ts +96 -0
- package/dist/ai/embedding-service.js +333 -0
- package/dist/auth/api-tokens.d.ts +71 -0
- package/dist/auth/api-tokens.js +235 -0
- package/dist/auth/auth-service.d.ts +75 -0
- package/dist/auth/auth-service.js +557 -0
- package/dist/auth/device-identity.d.ts +96 -0
- package/dist/auth/device-identity.js +250 -0
- package/dist/auth/github-oauth.d.ts +20 -0
- package/dist/auth/github-oauth.js +59 -0
- package/dist/auth/jira-oauth.d.ts +25 -0
- package/dist/auth/jira-oauth.js +75 -0
- package/dist/auth/linear-oauth.d.ts +21 -0
- package/dist/auth/linear-oauth.js +59 -0
- package/dist/auth/middleware.d.ts +44 -0
- package/dist/auth/middleware.js +190 -0
- package/dist/auth/pairing-codes.d.ts +109 -0
- package/dist/auth/pairing-codes.js +274 -0
- package/dist/auth/password.d.ts +53 -0
- package/dist/auth/password.js +126 -0
- package/dist/auth/qr-pairing.d.ts +36 -0
- package/dist/auth/qr-pairing.js +138 -0
- package/dist/auth/slack-oauth.d.ts +31 -0
- package/dist/auth/slack-oauth.js +80 -0
- package/dist/backup/index.d.ts +50 -0
- package/dist/backup/index.js +184 -0
- package/dist/browser/adapters.d.ts +25 -0
- package/dist/browser/adapters.js +32 -0
- package/dist/browser/cli.d.ts +19 -0
- package/dist/browser/cli.js +277 -0
- package/dist/browser/compression.d.ts +32 -0
- package/dist/browser/compression.js +269 -0
- package/dist/browser/extensions.d.ts +144 -0
- package/dist/browser/extensions.js +251 -0
- package/dist/browser/index.d.ts +37 -0
- package/dist/browser/index.js +43 -0
- package/dist/browser/refs.d.ts +46 -0
- package/dist/browser/refs.js +120 -0
- package/dist/browser/search.d.ts +36 -0
- package/dist/browser/search.js +193 -0
- package/dist/browser/service.d.ts +94 -0
- package/dist/browser/service.js +358 -0
- package/dist/browser/snapshot.d.ts +19 -0
- package/dist/browser/snapshot.js +250 -0
- package/dist/browser/tools.d.ts +259 -0
- package/dist/browser/tools.js +463 -0
- package/dist/browser/types.d.ts +134 -0
- package/dist/browser/types.js +17 -0
- package/dist/chat/agentic-executor.d.ts +108 -0
- package/dist/chat/agentic-executor.js +739 -0
- package/dist/chat/api-key-detector.d.ts +41 -0
- package/dist/chat/api-key-detector.js +290 -0
- package/dist/chat/auto-reply.d.ts +90 -0
- package/dist/chat/auto-reply.js +272 -0
- package/dist/chat/conversations.d.ts +91 -0
- package/dist/chat/conversations.js +297 -0
- package/dist/chat/execution/audit.d.ts +192 -0
- package/dist/chat/execution/audit.js +323 -0
- package/dist/chat/execution/executor.d.ts +56 -0
- package/dist/chat/execution/executor.js +654 -0
- package/dist/chat/execution/guardrails.d.ts +98 -0
- package/dist/chat/execution/guardrails.js +571 -0
- package/dist/chat/execution/index.d.ts +61 -0
- package/dist/chat/execution/index.js +129 -0
- package/dist/chat/execution/model-capability.d.ts +34 -0
- package/dist/chat/execution/model-capability.js +96 -0
- package/dist/chat/execution/process-pool.d.ts +110 -0
- package/dist/chat/execution/process-pool.js +290 -0
- package/dist/chat/execution/pty.d.ts +92 -0
- package/dist/chat/execution/pty.js +285 -0
- package/dist/chat/execution/rate-limiter.d.ts +87 -0
- package/dist/chat/execution/rate-limiter.js +305 -0
- package/dist/chat/execution/registry.d.ts +54 -0
- package/dist/chat/execution/registry.js +220 -0
- package/dist/chat/execution/sandbox.d.ts +109 -0
- package/dist/chat/execution/sandbox.js +684 -0
- package/dist/chat/execution/secrets.d.ts +45 -0
- package/dist/chat/execution/secrets.js +338 -0
- package/dist/chat/execution/security.d.ts +179 -0
- package/dist/chat/execution/security.js +739 -0
- package/dist/chat/execution/self-correction.d.ts +162 -0
- package/dist/chat/execution/self-correction.js +557 -0
- package/dist/chat/execution/session-manager.d.ts +79 -0
- package/dist/chat/execution/session-manager.js +356 -0
- package/dist/chat/execution/session-spawn/config.d.ts +37 -0
- package/dist/chat/execution/session-spawn/config.js +83 -0
- package/dist/chat/execution/session-spawn/index.d.ts +10 -0
- package/dist/chat/execution/session-spawn/index.js +10 -0
- package/dist/chat/execution/session-spawn/manager.d.ts +35 -0
- package/dist/chat/execution/session-spawn/manager.js +418 -0
- package/dist/chat/execution/session-spawn/types.d.ts +117 -0
- package/dist/chat/execution/session-spawn/types.js +16 -0
- package/dist/chat/execution/smart-prompts.d.ts +34 -0
- package/dist/chat/execution/smart-prompts.js +151 -0
- package/dist/chat/execution/stream-results.d.ts +65 -0
- package/dist/chat/execution/stream-results.js +156 -0
- package/dist/chat/execution/tool-router.d.ts +76 -0
- package/dist/chat/execution/tool-router.js +296 -0
- package/dist/chat/execution/tools/agents-list.d.ts +49 -0
- package/dist/chat/execution/tools/agents-list.js +165 -0
- package/dist/chat/execution/tools/browser.d.ts +12 -0
- package/dist/chat/execution/tools/browser.js +14 -0
- package/dist/chat/execution/tools/canvas.d.ts +61 -0
- package/dist/chat/execution/tools/canvas.js +150 -0
- package/dist/chat/execution/tools/complete-task.d.ts +72 -0
- package/dist/chat/execution/tools/complete-task.js +104 -0
- package/dist/chat/execution/tools/cron-tool.d.ts +204 -0
- package/dist/chat/execution/tools/cron-tool.js +680 -0
- package/dist/chat/execution/tools/discord-actions.d.ts +120 -0
- package/dist/chat/execution/tools/discord-actions.js +361 -0
- package/dist/chat/execution/tools/exec.d.ts +43 -0
- package/dist/chat/execution/tools/exec.js +223 -0
- package/dist/chat/execution/tools/file-ops.d.ts +175 -0
- package/dist/chat/execution/tools/file-ops.js +723 -0
- package/dist/chat/execution/tools/git.d.ts +143 -0
- package/dist/chat/execution/tools/git.js +395 -0
- package/dist/chat/execution/tools/github.d.ts +42 -0
- package/dist/chat/execution/tools/github.js +184 -0
- package/dist/chat/execution/tools/glinr-ops.d.ts +202 -0
- package/dist/chat/execution/tools/glinr-ops.js +694 -0
- package/dist/chat/execution/tools/image-analyze.d.ts +29 -0
- package/dist/chat/execution/tools/image-analyze.js +127 -0
- package/dist/chat/execution/tools/index.d.ts +64 -0
- package/dist/chat/execution/tools/index.js +245 -0
- package/dist/chat/execution/tools/integrations.d.ts +109 -0
- package/dist/chat/execution/tools/integrations.js +237 -0
- package/dist/chat/execution/tools/link-understand.d.ts +34 -0
- package/dist/chat/execution/tools/link-understand.js +307 -0
- package/dist/chat/execution/tools/maintenance.d.ts +29 -0
- package/dist/chat/execution/tools/maintenance.js +105 -0
- package/dist/chat/execution/tools/memory-tools.d.ts +76 -0
- package/dist/chat/execution/tools/memory-tools.js +278 -0
- package/dist/chat/execution/tools/openai-image-gen.d.ts +51 -0
- package/dist/chat/execution/tools/openai-image-gen.js +212 -0
- package/dist/chat/execution/tools/profclaw-ops.d.ts +204 -0
- package/dist/chat/execution/tools/profclaw-ops.js +665 -0
- package/dist/chat/execution/tools/session-spawn.d.ts +146 -0
- package/dist/chat/execution/tools/session-spawn.js +544 -0
- package/dist/chat/execution/tools/session-status.d.ts +38 -0
- package/dist/chat/execution/tools/session-status.js +185 -0
- package/dist/chat/execution/tools/sessions-list.d.ts +49 -0
- package/dist/chat/execution/tools/sessions-list.js +153 -0
- package/dist/chat/execution/tools/sessions-send.d.ts +48 -0
- package/dist/chat/execution/tools/sessions-send.js +207 -0
- package/dist/chat/execution/tools/sessions-spawn.d.ts +51 -0
- package/dist/chat/execution/tools/sessions-spawn.js +137 -0
- package/dist/chat/execution/tools/slack-actions.d.ts +90 -0
- package/dist/chat/execution/tools/slack-actions.js +272 -0
- package/dist/chat/execution/tools/subagent-orchestrate.d.ts +66 -0
- package/dist/chat/execution/tools/subagent-orchestrate.js +313 -0
- package/dist/chat/execution/tools/system.d.ts +121 -0
- package/dist/chat/execution/tools/system.js +415 -0
- package/dist/chat/execution/tools/telegram-actions.d.ts +126 -0
- package/dist/chat/execution/tools/telegram-actions.js +339 -0
- package/dist/chat/execution/tools/test-run.d.ts +43 -0
- package/dist/chat/execution/tools/test-run.js +391 -0
- package/dist/chat/execution/tools/tts-speak.d.ts +39 -0
- package/dist/chat/execution/tools/tts-speak.js +199 -0
- package/dist/chat/execution/tools/web-fetch.d.ts +42 -0
- package/dist/chat/execution/tools/web-fetch.js +247 -0
- package/dist/chat/execution/tools/web-search.d.ts +53 -0
- package/dist/chat/execution/tools/web-search.js +130 -0
- package/dist/chat/execution/types.d.ts +337 -0
- package/dist/chat/execution/types.js +8 -0
- package/dist/chat/execution/workflows/built-in.d.ts +10 -0
- package/dist/chat/execution/workflows/built-in.js +249 -0
- package/dist/chat/execution/workflows/executor.d.ts +13 -0
- package/dist/chat/execution/workflows/executor.js +259 -0
- package/dist/chat/execution/workflows/index.d.ts +5 -0
- package/dist/chat/execution/workflows/index.js +5 -0
- package/dist/chat/execution/workflows/trigger.d.ts +15 -0
- package/dist/chat/execution/workflows/trigger.js +111 -0
- package/dist/chat/execution/workflows/types.d.ts +80 -0
- package/dist/chat/execution/workflows/types.js +2 -0
- package/dist/chat/failover/error.d.ts +73 -0
- package/dist/chat/failover/error.js +412 -0
- package/dist/chat/failover/index.d.ts +10 -0
- package/dist/chat/failover/index.js +11 -0
- package/dist/chat/failover/model-fallback.d.ts +97 -0
- package/dist/chat/failover/model-fallback.js +328 -0
- package/dist/chat/failover/types.d.ts +47 -0
- package/dist/chat/failover/types.js +8 -0
- package/dist/chat/format/chunk.d.ts +59 -0
- package/dist/chat/format/chunk.js +253 -0
- package/dist/chat/format/index.d.ts +7 -0
- package/dist/chat/format/index.js +7 -0
- package/dist/chat/format/tool-result-formatter.d.ts +30 -0
- package/dist/chat/format/tool-result-formatter.js +177 -0
- package/dist/chat/group.d.ts +232 -0
- package/dist/chat/group.js +311 -0
- package/dist/chat/index.d.ts +21 -0
- package/dist/chat/index.js +30 -0
- package/dist/chat/memory.d.ts +108 -0
- package/dist/chat/memory.js +343 -0
- package/dist/chat/message-handler.d.ts +38 -0
- package/dist/chat/message-handler.js +274 -0
- package/dist/chat/proactive/index.d.ts +167 -0
- package/dist/chat/proactive/index.js +721 -0
- package/dist/chat/prompt-adapter.d.ts +52 -0
- package/dist/chat/prompt-adapter.js +245 -0
- package/dist/chat/providers/dingtalk/index.d.ts +69 -0
- package/dist/chat/providers/dingtalk/index.js +225 -0
- package/dist/chat/providers/discord/index.d.ts +264 -0
- package/dist/chat/providers/discord/index.js +657 -0
- package/dist/chat/providers/feishu/index.d.ts +97 -0
- package/dist/chat/providers/feishu/index.js +362 -0
- package/dist/chat/providers/googlechat/index.d.ts +269 -0
- package/dist/chat/providers/googlechat/index.js +634 -0
- package/dist/chat/providers/imessage/index.d.ts +61 -0
- package/dist/chat/providers/imessage/index.js +166 -0
- package/dist/chat/providers/index.d.ts +76 -0
- package/dist/chat/providers/index.js +430 -0
- package/dist/chat/providers/irc/index.d.ts +101 -0
- package/dist/chat/providers/irc/index.js +557 -0
- package/dist/chat/providers/line/index.d.ts +113 -0
- package/dist/chat/providers/line/index.js +434 -0
- package/dist/chat/providers/matrix/index.d.ts +161 -0
- package/dist/chat/providers/matrix/index.js +559 -0
- package/dist/chat/providers/mattermost/index.d.ts +106 -0
- package/dist/chat/providers/mattermost/index.js +425 -0
- package/dist/chat/providers/msteams/index.d.ts +198 -0
- package/dist/chat/providers/msteams/index.js +694 -0
- package/dist/chat/providers/nextcloud/index.d.ts +52 -0
- package/dist/chat/providers/nextcloud/index.js +156 -0
- package/dist/chat/providers/nostr/index.d.ts +60 -0
- package/dist/chat/providers/nostr/index.js +200 -0
- package/dist/chat/providers/qq/index.d.ts +57 -0
- package/dist/chat/providers/qq/index.js +260 -0
- package/dist/chat/providers/registry.d.ts +89 -0
- package/dist/chat/providers/registry.js +213 -0
- package/dist/chat/providers/signal/index.d.ts +88 -0
- package/dist/chat/providers/signal/index.js +357 -0
- package/dist/chat/providers/slack/index.d.ts +52 -0
- package/dist/chat/providers/slack/index.js +477 -0
- package/dist/chat/providers/synology/index.d.ts +50 -0
- package/dist/chat/providers/synology/index.js +138 -0
- package/dist/chat/providers/telegram/index.d.ts +148 -0
- package/dist/chat/providers/telegram/index.js +492 -0
- package/dist/chat/providers/tlon/index.d.ts +44 -0
- package/dist/chat/providers/tlon/index.js +243 -0
- package/dist/chat/providers/twitch/index.d.ts +79 -0
- package/dist/chat/providers/twitch/index.js +349 -0
- package/dist/chat/providers/types.d.ts +437 -0
- package/dist/chat/providers/types.js +14 -0
- package/dist/chat/providers/webchat/index.d.ts +38 -0
- package/dist/chat/providers/webchat/index.js +214 -0
- package/dist/chat/providers/wecom/index.d.ts +62 -0
- package/dist/chat/providers/wecom/index.js +228 -0
- package/dist/chat/providers/whatsapp/index.d.ts +147 -0
- package/dist/chat/providers/whatsapp/index.js +396 -0
- package/dist/chat/providers/zalo/index.d.ts +54 -0
- package/dist/chat/providers/zalo/index.js +158 -0
- package/dist/chat/providers/zalo-personal/index.d.ts +53 -0
- package/dist/chat/providers/zalo-personal/index.js +212 -0
- package/dist/chat/skills.d.ts +82 -0
- package/dist/chat/skills.js +410 -0
- package/dist/chat/system-prompts.d.ts +76 -0
- package/dist/chat/system-prompts.js +407 -0
- package/dist/chat/tool-handler.d.ts +57 -0
- package/dist/chat/tool-handler.js +336 -0
- package/dist/chat/tools.d.ts +373 -0
- package/dist/chat/tools.js +512 -0
- package/dist/cli/commands/agent.d.ts +3 -0
- package/dist/cli/commands/agent.js +108 -0
- package/dist/cli/commands/auth.d.ts +12 -0
- package/dist/cli/commands/auth.js +301 -0
- package/dist/cli/commands/browser.d.ts +3 -0
- package/dist/cli/commands/browser.js +138 -0
- package/dist/cli/commands/canvas.d.ts +3 -0
- package/dist/cli/commands/canvas.js +155 -0
- package/dist/cli/commands/channels.d.ts +3 -0
- package/dist/cli/commands/channels.js +167 -0
- package/dist/cli/commands/chat.d.ts +9 -0
- package/dist/cli/commands/chat.js +360 -0
- package/dist/cli/commands/completion.d.ts +3 -0
- package/dist/cli/commands/completion.js +170 -0
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.js +193 -0
- package/dist/cli/commands/cost.d.ts +3 -0
- package/dist/cli/commands/cost.js +134 -0
- package/dist/cli/commands/daemon.d.ts +3 -0
- package/dist/cli/commands/daemon.js +381 -0
- package/dist/cli/commands/devices.d.ts +3 -0
- package/dist/cli/commands/devices.js +150 -0
- package/dist/cli/commands/doctor.d.ts +3 -0
- package/dist/cli/commands/doctor.js +295 -0
- package/dist/cli/commands/logs.d.ts +3 -0
- package/dist/cli/commands/logs.js +139 -0
- package/dist/cli/commands/mcp.d.ts +15 -0
- package/dist/cli/commands/mcp.js +157 -0
- package/dist/cli/commands/memory.d.ts +3 -0
- package/dist/cli/commands/memory.js +170 -0
- package/dist/cli/commands/models.d.ts +3 -0
- package/dist/cli/commands/models.js +197 -0
- package/dist/cli/commands/nodes.d.ts +3 -0
- package/dist/cli/commands/nodes.js +193 -0
- package/dist/cli/commands/onboard.d.ts +13 -0
- package/dist/cli/commands/onboard.js +360 -0
- package/dist/cli/commands/plugin.d.ts +15 -0
- package/dist/cli/commands/plugin.js +226 -0
- package/dist/cli/commands/provider.d.ts +16 -0
- package/dist/cli/commands/provider.js +320 -0
- package/dist/cli/commands/security.d.ts +3 -0
- package/dist/cli/commands/security.js +180 -0
- package/dist/cli/commands/serve.d.ts +3 -0
- package/dist/cli/commands/serve.js +179 -0
- package/dist/cli/commands/session.d.ts +3 -0
- package/dist/cli/commands/session.js +172 -0
- package/dist/cli/commands/setup.d.ts +13 -0
- package/dist/cli/commands/setup.js +636 -0
- package/dist/cli/commands/skill.d.ts +15 -0
- package/dist/cli/commands/skill.js +191 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.js +71 -0
- package/dist/cli/commands/summary.d.ts +3 -0
- package/dist/cli/commands/summary.js +160 -0
- package/dist/cli/commands/task.d.ts +3 -0
- package/dist/cli/commands/task.js +170 -0
- package/dist/cli/commands/ticket.d.ts +3 -0
- package/dist/cli/commands/ticket.js +421 -0
- package/dist/cli/commands/tools.d.ts +9 -0
- package/dist/cli/commands/tools.js +508 -0
- package/dist/cli/commands/tui.d.ts +3 -0
- package/dist/cli/commands/tui.js +158 -0
- package/dist/cli/commands/tunnel.d.ts +3 -0
- package/dist/cli/commands/tunnel.js +135 -0
- package/dist/cli/commands/webhooks.d.ts +3 -0
- package/dist/cli/commands/webhooks.js +191 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.js +127 -0
- package/dist/cli/utils/api.d.ts +17 -0
- package/dist/cli/utils/api.js +63 -0
- package/dist/cli/utils/config.d.ts +31 -0
- package/dist/cli/utils/config.js +81 -0
- package/dist/cli/utils/output.d.ts +58 -0
- package/dist/cli/utils/output.js +148 -0
- package/dist/core/deployment.d.ts +30 -0
- package/dist/core/deployment.js +114 -0
- package/dist/core/sandbox-config.d.ts +63 -0
- package/dist/core/sandbox-config.js +148 -0
- package/dist/costs/budget.d.ts +28 -0
- package/dist/costs/budget.js +57 -0
- package/dist/costs/persistence.d.ts +77 -0
- package/dist/costs/persistence.js +210 -0
- package/dist/costs/pricing.d.ts +16 -0
- package/dist/costs/pricing.js +39 -0
- package/dist/costs/token-tracker.d.ts +34 -0
- package/dist/costs/token-tracker.js +141 -0
- package/dist/cron/heartbeat.d.ts +23 -0
- package/dist/cron/heartbeat.js +109 -0
- package/dist/cron/index.d.ts +22 -0
- package/dist/cron/index.js +37 -0
- package/dist/cron/issue-poller.d.ts +15 -0
- package/dist/cron/issue-poller.js +174 -0
- package/dist/cron/scheduler.d.ts +315 -0
- package/dist/cron/scheduler.js +1008 -0
- package/dist/cron/stale-checker.d.ts +16 -0
- package/dist/cron/stale-checker.js +61 -0
- package/dist/cron/templates.d.ts +107 -0
- package/dist/cron/templates.js +395 -0
- package/dist/diagnostics/exporters.d.ts +21 -0
- package/dist/diagnostics/exporters.js +138 -0
- package/dist/diagnostics/index.d.ts +10 -0
- package/dist/diagnostics/index.js +9 -0
- package/dist/diagnostics/middleware.d.ts +12 -0
- package/dist/diagnostics/middleware.js +58 -0
- package/dist/diagnostics/tracer.d.ts +133 -0
- package/dist/diagnostics/tracer.js +257 -0
- package/dist/discovery/index.d.ts +8 -0
- package/dist/discovery/index.js +7 -0
- package/dist/discovery/mdns.d.ts +40 -0
- package/dist/discovery/mdns.js +249 -0
- package/dist/gateway/index.d.ts +35 -0
- package/dist/gateway/index.js +36 -0
- package/dist/gateway/router.d.ts +110 -0
- package/dist/gateway/router.js +649 -0
- package/dist/gateway/types.d.ts +275 -0
- package/dist/gateway/types.js +2 -0
- package/dist/gateway/workflows.d.ts +37 -0
- package/dist/gateway/workflows.js +748 -0
- package/dist/hooks/agent-webhook.d.ts +277 -0
- package/dist/hooks/agent-webhook.js +197 -0
- package/dist/hooks/index.d.ts +13 -0
- package/dist/hooks/index.js +15 -0
- package/dist/hooks/prompt-submit.d.ts +45 -0
- package/dist/hooks/prompt-submit.js +111 -0
- package/dist/hooks/schemas.d.ts +563 -0
- package/dist/hooks/schemas.js +108 -0
- package/dist/hooks/session-end.d.ts +25 -0
- package/dist/hooks/session-end.js +153 -0
- package/dist/hooks/tool-use.d.ts +41 -0
- package/dist/hooks/tool-use.js +201 -0
- package/dist/hooks/types.d.ts +76 -0
- package/dist/hooks/types.js +7 -0
- package/dist/integrations/cloudflare-tunnel.d.ts +78 -0
- package/dist/integrations/cloudflare-tunnel.js +268 -0
- package/dist/integrations/github-client.d.ts +27 -0
- package/dist/integrations/github-client.js +79 -0
- package/dist/integrations/github-projects.d.ts +97 -0
- package/dist/integrations/github-projects.js +433 -0
- package/dist/integrations/github-ticket-sync.d.ts +82 -0
- package/dist/integrations/github-ticket-sync.js +352 -0
- package/dist/integrations/github.d.ts +11 -0
- package/dist/integrations/github.js +241 -0
- package/dist/integrations/jira-client.d.ts +30 -0
- package/dist/integrations/jira-client.js +67 -0
- package/dist/integrations/jira.d.ts +13 -0
- package/dist/integrations/jira.js +108 -0
- package/dist/integrations/linear-client.d.ts +23 -0
- package/dist/integrations/linear-client.js +52 -0
- package/dist/integrations/linear.d.ts +15 -0
- package/dist/integrations/linear.js +312 -0
- package/dist/integrations/tailscale.d.ts +68 -0
- package/dist/integrations/tailscale.js +173 -0
- package/dist/integrations/web-search.d.ts +112 -0
- package/dist/integrations/web-search.js +287 -0
- package/dist/intelligence/index.d.ts +8 -0
- package/dist/intelligence/index.js +8 -0
- package/dist/intelligence/ollama.d.ts +50 -0
- package/dist/intelligence/ollama.js +213 -0
- package/dist/intelligence/rules.d.ts +39 -0
- package/dist/intelligence/rules.js +308 -0
- package/dist/labels/index.d.ts +93 -0
- package/dist/labels/index.js +248 -0
- package/dist/mcp/browser-tools.d.ts +10 -0
- package/dist/mcp/browser-tools.js +16 -0
- package/dist/mcp/client.d.ts +54 -0
- package/dist/mcp/client.js +153 -0
- package/dist/mcp/index.d.ts +12 -0
- package/dist/mcp/index.js +13 -0
- package/dist/mcp/server.d.ts +40 -0
- package/dist/mcp/server.js +826 -0
- package/dist/mcp/tool-adapter.d.ts +49 -0
- package/dist/mcp/tool-adapter.js +193 -0
- package/dist/memory/experience-store.d.ts +121 -0
- package/dist/memory/experience-store.js +439 -0
- package/dist/memory/index.d.ts +8 -0
- package/dist/memory/index.js +25 -0
- package/dist/memory/memory-service.d.ts +312 -0
- package/dist/memory/memory-service.js +1172 -0
- package/dist/memory/memory-watcher.d.ts +116 -0
- package/dist/memory/memory-watcher.js +239 -0
- package/dist/middleware/logging.d.ts +34 -0
- package/dist/middleware/logging.js +184 -0
- package/dist/middleware/rate-limit.d.ts +29 -0
- package/dist/middleware/rate-limit.js +91 -0
- package/dist/notifications/in-app.d.ts +28 -0
- package/dist/notifications/in-app.js +53 -0
- package/dist/notifications/index.d.ts +3 -0
- package/dist/notifications/index.js +3 -0
- package/dist/notifications/push.d.ts +74 -0
- package/dist/notifications/push.js +175 -0
- package/dist/notifications/slack.d.ts +32 -0
- package/dist/notifications/slack.js +157 -0
- package/dist/plugins/clawhub.d.ts +70 -0
- package/dist/plugins/clawhub.js +260 -0
- package/dist/plugins/loader.d.ts +23 -0
- package/dist/plugins/loader.js +140 -0
- package/dist/plugins/marketplace.d.ts +77 -0
- package/dist/plugins/marketplace.js +275 -0
- package/dist/plugins/registry.d.ts +122 -0
- package/dist/plugins/registry.js +352 -0
- package/dist/plugins/sandbox.d.ts +77 -0
- package/dist/plugins/sandbox.js +287 -0
- package/dist/plugins/scaffolder.d.ts +28 -0
- package/dist/plugins/scaffolder.js +409 -0
- package/dist/plugins/sdk.d.ts +35 -0
- package/dist/plugins/sdk.js +8 -0
- package/dist/plugins/search/brave.d.ts +9 -0
- package/dist/plugins/search/brave.js +157 -0
- package/dist/plugins/search/duckduckgo.d.ts +9 -0
- package/dist/plugins/search/duckduckgo.js +171 -0
- package/dist/plugins/search/index.d.ts +13 -0
- package/dist/plugins/search/index.js +23 -0
- package/dist/plugins/search/searxng.d.ts +9 -0
- package/dist/plugins/search/searxng.js +170 -0
- package/dist/plugins/search/serper.d.ts +9 -0
- package/dist/plugins/search/serper.js +135 -0
- package/dist/plugins/search/tavily.d.ts +9 -0
- package/dist/plugins/search/tavily.js +146 -0
- package/dist/plugins/types.d.ts +174 -0
- package/dist/plugins/types.js +8 -0
- package/dist/projects/index.d.ts +133 -0
- package/dist/projects/index.js +897 -0
- package/dist/projects/types.d.ts +444 -0
- package/dist/projects/types.js +207 -0
- package/dist/providers/adapters/anthropic.d.ts +26 -0
- package/dist/providers/adapters/anthropic.js +306 -0
- package/dist/providers/adapters/base.d.ts +53 -0
- package/dist/providers/adapters/base.js +99 -0
- package/dist/providers/adapters/ollama.d.ts +30 -0
- package/dist/providers/adapters/ollama.js +292 -0
- package/dist/providers/ai-sdk.d.ts +178 -0
- package/dist/providers/ai-sdk.js +1552 -0
- package/dist/providers/core/index.d.ts +8 -0
- package/dist/providers/core/index.js +10 -0
- package/dist/providers/core/models.d.ts +31 -0
- package/dist/providers/core/models.js +949 -0
- package/dist/providers/core/types.d.ts +117 -0
- package/dist/providers/core/types.js +83 -0
- package/dist/providers/index.d.ts +7 -0
- package/dist/providers/index.js +7 -0
- package/dist/providers/registry.d.ts +93 -0
- package/dist/providers/registry.js +228 -0
- package/dist/providers/schema-utils.d.ts +23 -0
- package/dist/providers/schema-utils.js +545 -0
- package/dist/providers/types.d.ts +609 -0
- package/dist/providers/types.js +279 -0
- package/dist/queue/failure-handler.d.ts +93 -0
- package/dist/queue/failure-handler.js +379 -0
- package/dist/queue/index.d.ts +23 -0
- package/dist/queue/index.js +86 -0
- package/dist/queue/memory-queue.d.ts +30 -0
- package/dist/queue/memory-queue.js +429 -0
- package/dist/queue/notifications.d.ts +6 -0
- package/dist/queue/notifications.js +128 -0
- package/dist/queue/task-queue.d.ts +55 -0
- package/dist/queue/task-queue.js +518 -0
- package/dist/queue/webhook-queue.d.ts +47 -0
- package/dist/queue/webhook-queue.js +158 -0
- package/dist/routes/agents.d.ts +4 -0
- package/dist/routes/agents.js +45 -0
- package/dist/routes/auth.d.ts +19 -0
- package/dist/routes/auth.js +492 -0
- package/dist/routes/backup.d.ts +6 -0
- package/dist/routes/backup.js +71 -0
- package/dist/routes/chat.d.ts +10 -0
- package/dist/routes/chat.js +1678 -0
- package/dist/routes/clawhub.d.ts +8 -0
- package/dist/routes/clawhub.js +89 -0
- package/dist/routes/costs.d.ts +4 -0
- package/dist/routes/costs.js +78 -0
- package/dist/routes/cron.d.ts +11 -0
- package/dist/routes/cron.js +708 -0
- package/dist/routes/devices.d.ts +9 -0
- package/dist/routes/devices.js +490 -0
- package/dist/routes/discord.d.ts +15 -0
- package/dist/routes/discord.js +524 -0
- package/dist/routes/dlq.d.ts +4 -0
- package/dist/routes/dlq.js +64 -0
- package/dist/routes/gateway.d.ts +4 -0
- package/dist/routes/gateway.js +253 -0
- package/dist/routes/health.d.ts +29 -0
- package/dist/routes/health.js +296 -0
- package/dist/routes/hooks.d.ts +4 -0
- package/dist/routes/hooks.js +170 -0
- package/dist/routes/import.d.ts +9 -0
- package/dist/routes/import.js +540 -0
- package/dist/routes/index.d.ts +38 -0
- package/dist/routes/index.js +39 -0
- package/dist/routes/integrations.d.ts +10 -0
- package/dist/routes/integrations.js +200 -0
- package/dist/routes/labels.d.ts +8 -0
- package/dist/routes/labels.js +240 -0
- package/dist/routes/mcp.d.ts +14 -0
- package/dist/routes/mcp.js +125 -0
- package/dist/routes/memory.d.ts +10 -0
- package/dist/routes/memory.js +622 -0
- package/dist/routes/notifications.d.ts +9 -0
- package/dist/routes/notifications.js +154 -0
- package/dist/routes/oobe.d.ts +10 -0
- package/dist/routes/oobe.js +405 -0
- package/dist/routes/openapi.d.ts +9 -0
- package/dist/routes/openapi.js +537 -0
- package/dist/routes/plugins.d.ts +8 -0
- package/dist/routes/plugins.js +108 -0
- package/dist/routes/projects.d.ts +8 -0
- package/dist/routes/projects.js +592 -0
- package/dist/routes/push.d.ts +8 -0
- package/dist/routes/push.js +75 -0
- package/dist/routes/search.d.ts +4 -0
- package/dist/routes/search.js +189 -0
- package/dist/routes/security.d.ts +10 -0
- package/dist/routes/security.js +189 -0
- package/dist/routes/settings.d.ts +4 -0
- package/dist/routes/settings.js +119 -0
- package/dist/routes/setup.d.ts +11 -0
- package/dist/routes/setup.js +525 -0
- package/dist/routes/skills.d.ts +13 -0
- package/dist/routes/skills.js +152 -0
- package/dist/routes/slack.d.ts +12 -0
- package/dist/routes/slack.js +999 -0
- package/dist/routes/states.d.ts +8 -0
- package/dist/routes/states.js +123 -0
- package/dist/routes/stats.d.ts +6 -0
- package/dist/routes/stats.js +369 -0
- package/dist/routes/summaries.d.ts +4 -0
- package/dist/routes/summaries.js +344 -0
- package/dist/routes/sync.d.ts +13 -0
- package/dist/routes/sync.js +268 -0
- package/dist/routes/tasks.d.ts +4 -0
- package/dist/routes/tasks.js +473 -0
- package/dist/routes/telegram.d.ts +14 -0
- package/dist/routes/telegram.js +420 -0
- package/dist/routes/tickets.d.ts +4 -0
- package/dist/routes/tickets.js +1090 -0
- package/dist/routes/tokens.d.ts +4 -0
- package/dist/routes/tokens.js +83 -0
- package/dist/routes/tools.d.ts +14 -0
- package/dist/routes/tools.js +790 -0
- package/dist/routes/tunnels.d.ts +8 -0
- package/dist/routes/tunnels.js +145 -0
- package/dist/routes/users.d.ts +15 -0
- package/dist/routes/users.js +998 -0
- package/dist/routes/voice.d.ts +8 -0
- package/dist/routes/voice.js +127 -0
- package/dist/routes/webchat.d.ts +11 -0
- package/dist/routes/webchat.js +173 -0
- package/dist/routes/webhook-dedup.d.ts +11 -0
- package/dist/routes/webhook-dedup.js +49 -0
- package/dist/routes/webhooks.d.ts +4 -0
- package/dist/routes/webhooks.js +71 -0
- package/dist/routes/whatsapp.d.ts +14 -0
- package/dist/routes/whatsapp.js +391 -0
- package/dist/security/audit-scanner.d.ts +32 -0
- package/dist/security/audit-scanner.js +217 -0
- package/dist/security/fs-guard.d.ts +41 -0
- package/dist/security/fs-guard.js +206 -0
- package/dist/security/prompt-guard.d.ts +47 -0
- package/dist/security/prompt-guard.js +198 -0
- package/dist/security/ssrf-guard.d.ts +38 -0
- package/dist/security/ssrf-guard.js +266 -0
- package/dist/security/types.d.ts +92 -0
- package/dist/security/types.js +8 -0
- package/dist/server/route-loader.d.ts +15 -0
- package/dist/server/route-loader.js +135 -0
- package/dist/server.d.ts +5 -0
- package/dist/server.js +835 -0
- package/dist/settings/index.d.ts +841 -0
- package/dist/settings/index.js +451 -0
- package/dist/skills/compiler.d.ts +83 -0
- package/dist/skills/compiler.js +358 -0
- package/dist/skills/frontmatter.d.ts +33 -0
- package/dist/skills/frontmatter.js +175 -0
- package/dist/skills/index.d.ts +19 -0
- package/dist/skills/index.js +24 -0
- package/dist/skills/installer.d.ts +22 -0
- package/dist/skills/installer.js +220 -0
- package/dist/skills/loader.d.ts +72 -0
- package/dist/skills/loader.js +484 -0
- package/dist/skills/prompt-builder.d.ts +48 -0
- package/dist/skills/prompt-builder.js +135 -0
- package/dist/skills/registry.d.ts +115 -0
- package/dist/skills/registry.js +225 -0
- package/dist/skills/types.d.ts +202 -0
- package/dist/skills/types.js +24 -0
- package/dist/states/index.d.ts +64 -0
- package/dist/states/index.js +142 -0
- package/dist/storage/adapter.d.ts +146 -0
- package/dist/storage/adapter.js +2 -0
- package/dist/storage/index.d.ts +48 -0
- package/dist/storage/index.js +135 -0
- package/dist/storage/libsql.d.ts +99 -0
- package/dist/storage/libsql.js +1873 -0
- package/dist/storage/migrations.d.ts +65 -0
- package/dist/storage/migrations.js +289 -0
- package/dist/storage/schema.d.ts +10185 -0
- package/dist/storage/schema.js +1113 -0
- package/dist/summaries/extractor.d.ts +56 -0
- package/dist/summaries/extractor.js +377 -0
- package/dist/summaries/index.d.ts +13 -0
- package/dist/summaries/index.js +14 -0
- package/dist/summaries/storage.d.ts +51 -0
- package/dist/summaries/storage.js +101 -0
- package/dist/summaries/templates.d.ts +68 -0
- package/dist/summaries/templates.js +245 -0
- package/dist/sync/adapters/base.d.ts +42 -0
- package/dist/sync/adapters/base.js +142 -0
- package/dist/sync/adapters/github.d.ts +45 -0
- package/dist/sync/adapters/github.js +445 -0
- package/dist/sync/adapters/linear.d.ts +40 -0
- package/dist/sync/adapters/linear.js +434 -0
- package/dist/sync/config.d.ts +388 -0
- package/dist/sync/config.js +281 -0
- package/dist/sync/engine.d.ts +112 -0
- package/dist/sync/engine.js +623 -0
- package/dist/sync/index.d.ts +31 -0
- package/dist/sync/index.js +34 -0
- package/dist/sync/integration.d.ts +53 -0
- package/dist/sync/integration.js +231 -0
- package/dist/sync/types.d.ts +249 -0
- package/dist/sync/types.js +30 -0
- package/dist/tickets/index.d.ts +139 -0
- package/dist/tickets/index.js +1406 -0
- package/dist/tickets/types.d.ts +817 -0
- package/dist/tickets/types.js +310 -0
- package/dist/tools/adapters.d.ts +56 -0
- package/dist/tools/adapters.js +183 -0
- package/dist/tools/index.d.ts +66 -0
- package/dist/tools/index.js +105 -0
- package/dist/tools/types.d.ts +117 -0
- package/dist/tools/types.js +20 -0
- package/dist/types/agent.d.ts +101 -0
- package/dist/types/agent.js +2 -0
- package/dist/types/errors.d.ts +150 -0
- package/dist/types/errors.js +338 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.js +3 -0
- package/dist/types/summary.d.ts +638 -0
- package/dist/types/summary.js +137 -0
- package/dist/types/task.d.ts +123 -0
- package/dist/types/task.js +46 -0
- package/dist/utils/ai-cache.d.ts +72 -0
- package/dist/utils/ai-cache.js +204 -0
- package/dist/utils/ai-inference.d.ts +57 -0
- package/dist/utils/ai-inference.js +190 -0
- package/dist/utils/ai-responder.d.ts +44 -0
- package/dist/utils/ai-responder.js +272 -0
- package/dist/utils/circuit-breaker.d.ts +139 -0
- package/dist/utils/circuit-breaker.js +281 -0
- package/dist/utils/config-loader.d.ts +12 -0
- package/dist/utils/config-loader.js +44 -0
- package/dist/utils/crypto.d.ts +10 -0
- package/dist/utils/crypto.js +59 -0
- package/dist/utils/env-validator.d.ts +44 -0
- package/dist/utils/env-validator.js +236 -0
- package/dist/utils/file-lock.d.ts +85 -0
- package/dist/utils/file-lock.js +204 -0
- package/dist/utils/logger.d.ts +153 -0
- package/dist/utils/logger.js +282 -0
- package/dist/utils/metrics.d.ts +183 -0
- package/dist/utils/metrics.js +345 -0
- package/dist/utils/security.d.ts +90 -0
- package/dist/utils/security.js +347 -0
- package/dist/voice/index.d.ts +79 -0
- package/dist/voice/index.js +144 -0
- package/dist/voice/stt/whisper.d.ts +13 -0
- package/dist/voice/stt/whisper.js +116 -0
- package/dist/voice/tts/elevenlabs.d.ts +18 -0
- package/dist/voice/tts/elevenlabs.js +178 -0
- package/dist/voice/tts/openai-tts.d.ts +19 -0
- package/dist/voice/tts/openai-tts.js +127 -0
- package/dist/voice/tts/system.d.ts +26 -0
- package/dist/voice/tts/system.js +146 -0
- package/dist/voice/wake-word.d.ts +44 -0
- package/dist/voice/wake-word.js +145 -0
- package/docker-compose.yml +222 -0
- package/package.json +154 -0
- package/profclaw.mjs +24 -0
- package/skills/1password/SKILL.md +155 -0
- package/skills/api-tester/SKILL.md +177 -0
- package/skills/apple-notes/SKILL.md +167 -0
- package/skills/apple-reminders/SKILL.md +178 -0
- package/skills/bear-notes/SKILL.md +166 -0
- package/skills/blogwatcher/SKILL.md +177 -0
- package/skills/camsnap/SKILL.md +130 -0
- package/skills/code-generation/SKILL.md +139 -0
- package/skills/code-review/SKILL.md +116 -0
- package/skills/coding-agent/SKILL.md +184 -0
- package/skills/cron-manager/SKILL.md +141 -0
- package/skills/debug-helper/SKILL.md +134 -0
- package/skills/docker-ops/SKILL.md +246 -0
- package/skills/file-manager/SKILL.md +160 -0
- package/skills/git-workflow/SKILL.md +171 -0
- package/skills/github-issues/SKILL.md +244 -0
- package/skills/gog/SKILL.md +191 -0
- package/skills/goplaces/SKILL.md +156 -0
- package/skills/healthcheck/SKILL.md +270 -0
- package/skills/himalaya/SKILL.md +165 -0
- package/skills/mcp-discovery/SKILL.md +109 -0
- package/skills/memory-manager/SKILL.md +151 -0
- package/skills/model-usage/SKILL.md +177 -0
- package/skills/nano-banana-pro/SKILL.md +214 -0
- package/skills/nano-pdf/SKILL.md +165 -0
- package/skills/notion/SKILL.md +147 -0
- package/skills/obsidian/SKILL.md +163 -0
- package/skills/openai-image-gen/SKILL.md +194 -0
- package/skills/openai-whisper/SKILL.md +98 -0
- package/skills/openai-whisper-api/SKILL.md +130 -0
- package/skills/openhue/SKILL.md +203 -0
- package/skills/oracle/SKILL.md +236 -0
- package/skills/phone-control/SKILL.md +201 -0
- package/skills/profclaw-assistant/SKILL.md +81 -0
- package/skills/profclaw-projects/SKILL.md +68 -0
- package/skills/profclaw-tickets/SKILL.md +91 -0
- package/skills/session-logs/SKILL.md +216 -0
- package/skills/sherpa-onnx-tts/SKILL.md +134 -0
- package/skills/skill-creator/SKILL.md +183 -0
- package/skills/songsee/SKILL.md +170 -0
- package/skills/spotify-player/SKILL.md +254 -0
- package/skills/summarize/SKILL.md +155 -0
- package/skills/system-admin/SKILL.md +179 -0
- package/skills/things-mac/SKILL.md +179 -0
- package/skills/tmux/SKILL.md +170 -0
- package/skills/trello/SKILL.md +154 -0
- package/skills/video-frames/SKILL.md +127 -0
- package/skills/weather/SKILL.md +186 -0
- package/skills/web-research/SKILL.md +128 -0
- package/skills/xurl/SKILL.md +198 -0
- package/ui/README.md +73 -0
- package/ui/dist/assets/ActivityView-CkPgKhwm.js +1 -0
- package/ui/dist/assets/AgentList-C3SVdeEz.js +1 -0
- package/ui/dist/assets/AnalyticsDashboard-DVU--vlP.js +1 -0
- package/ui/dist/assets/AreaChart-B5qMEGWj.js +1 -0
- package/ui/dist/assets/CartesianChart-B50bcUJi.js +36 -0
- package/ui/dist/assets/ChatView-BZFJs7w_.js +10 -0
- package/ui/dist/assets/CostsDashboard-ChfH8BlG.js +1 -0
- package/ui/dist/assets/EstimateSelect-CLpB4NQO.js +1 -0
- package/ui/dist/assets/FloatingChatbot-CBzBY9a0.js +2 -0
- package/ui/dist/assets/InviteCodeManagement-DsbdPa6W.js +2 -0
- package/ui/dist/assets/ProjectDetail-BEM3tFXg.js +2 -0
- package/ui/dist/assets/ProjectDetail-D1-0B2xV.css +1 -0
- package/ui/dist/assets/ProjectIcon-CN1FmFAk.js +1 -0
- package/ui/dist/assets/ProjectList-DSDaNhxQ.js +4 -0
- package/ui/dist/assets/Settings-dPVcqC_d.js +6 -0
- package/ui/dist/assets/StatusIndicator-DA3NAo_b.js +1 -0
- package/ui/dist/assets/SummaryDetail-Bjnf9lT8.js +27 -0
- package/ui/dist/assets/SummaryList-ENwKDBKW.js +1 -0
- package/ui/dist/assets/TaskDetail-DnwG6MzB.js +1 -0
- package/ui/dist/assets/TaskList-D9Ug_HiV.js +1 -0
- package/ui/dist/assets/TicketBoard-CviH1571.js +1 -0
- package/ui/dist/assets/TicketDetail-8Jk8O-33.js +1 -0
- package/ui/dist/assets/TicketList-B-iV4rRA.js +1 -0
- package/ui/dist/assets/UserManagement-CPZ8s7s2.js +2 -0
- package/ui/dist/assets/ViewSwitcher-BUyOOWDI.js +1 -0
- package/ui/dist/assets/alert-dialog-BOmnTkN-.js +7 -0
- package/ui/dist/assets/archive-D5my9zOG.js +1 -0
- package/ui/dist/assets/badge-B4ov81_m.js +1 -0
- package/ui/dist/assets/brain-C53ElFLD.js +1 -0
- package/ui/dist/assets/bug-D0TJoCYn.js +1 -0
- package/ui/dist/assets/calendar-BkWIhKa1.js +1 -0
- package/ui/dist/assets/chevron-up-BRTtndUZ.js +1 -0
- package/ui/dist/assets/circle-x-BN89YhbS.js +1 -0
- package/ui/dist/assets/constants-fc7TFI7u.js +1 -0
- package/ui/dist/assets/cpu-B41x1-vV.js +1 -0
- package/ui/dist/assets/database-D9Cnfmzj.js +1 -0
- package/ui/dist/assets/defineProperty-CoXUr7_6.js +2 -0
- package/ui/dist/assets/dialog-DrWB4EYD.js +1 -0
- package/ui/dist/assets/element-adapter-DL0DQilL.js +4 -0
- package/ui/dist/assets/ellipsis-NuUWekvu.js +1 -0
- package/ui/dist/assets/ellipsis-vertical-BueMfuCw.js +1 -0
- package/ui/dist/assets/file-code-HR9829Jc.js +1 -0
- package/ui/dist/assets/folder-open-C_7oYEqe.js +1 -0
- package/ui/dist/assets/funnel-B5gmNXGf.js +1 -0
- package/ui/dist/assets/git-branch-BRMiJmV3.js +1 -0
- package/ui/dist/assets/git-commit-horizontal-CXOUQeJI.js +1 -0
- package/ui/dist/assets/globe-CCspjvus.js +1 -0
- package/ui/dist/assets/hash-g3102kPC.js +1 -0
- package/ui/dist/assets/history-CNqcBBrV.js +1 -0
- package/ui/dist/assets/index-27mTPKuh.js +1 -0
- package/ui/dist/assets/index-BMx3fH-e.js +1 -0
- package/ui/dist/assets/index-C9jNQXzL.js +1 -0
- package/ui/dist/assets/index-CEZ6R2Uw.js +7 -0
- package/ui/dist/assets/index-DURTouJI.js +1 -0
- package/ui/dist/assets/index-WclMPci1.css +1 -0
- package/ui/dist/assets/index-kb4AJXUB.js +67 -0
- package/ui/dist/assets/layers-CLXiHN6o.js +1 -0
- package/ui/dist/assets/layout-dashboard-B07MFhBs.js +1 -0
- package/ui/dist/assets/lightbulb-B2dgG5ks.js +1 -0
- package/ui/dist/assets/link-2-BxNmr9hL.js +1 -0
- package/ui/dist/assets/markdown-renderer-CjU6hBcW.js +36 -0
- package/ui/dist/assets/message-square-Bf2-CVbt.js +1 -0
- package/ui/dist/assets/pencil-D096Ey62.js +1 -0
- package/ui/dist/assets/play-DfdcSI3x.js +1 -0
- package/ui/dist/assets/popover-BV0QJDQq.js +1 -0
- package/ui/dist/assets/progress-DjPEDJfI.js +1 -0
- package/ui/dist/assets/rocket-CPsTc-5G.js +1 -0
- package/ui/dist/assets/select-LsO16slr.js +1 -0
- package/ui/dist/assets/send-BDYBZDUZ.js +1 -0
- package/ui/dist/assets/server-B3k6noce.js +1 -0
- package/ui/dist/assets/settings-2-Cu4xTjhG.js +1 -0
- package/ui/dist/assets/sheet-BScLnPKX.js +1 -0
- package/ui/dist/assets/shield-check-CQqkwufI.js +1 -0
- package/ui/dist/assets/shield-off-ZFruH9KO.js +1 -0
- package/ui/dist/assets/skeleton-CtkIA_MU.js +1 -0
- package/ui/dist/assets/smartphone-DnoksVkc.js +1 -0
- package/ui/dist/assets/square-uD9ZHMfW.js +1 -0
- package/ui/dist/assets/switch-MQPnwGJK.js +1 -0
- package/ui/dist/assets/table-B8cqlywA.js +1 -0
- package/ui/dist/assets/tag-wEJQRWlV.js +1 -0
- package/ui/dist/assets/textarea-D5LJCOGl.js +1 -0
- package/ui/dist/assets/timer-mbGHegmr.js +1 -0
- package/ui/dist/assets/tooltip-Df1CunSp.js +1 -0
- package/ui/dist/assets/trash-2-B4oAXsX-.js +1 -0
- package/ui/dist/assets/trending-up-BGWxvlmZ.js +1 -0
- package/ui/dist/assets/wand-sparkles-CZy4xvL3.js +1 -0
- package/ui/dist/assets/wrench-ByZkjO6m.js +1 -0
- package/ui/dist/audio-worklets/vad-processor.js +132 -0
- package/ui/dist/brand/profclaw-appicon-192.png +0 -0
- package/ui/dist/brand/profclaw-appicon-512.png +0 -0
- package/ui/dist/brand/profclaw-appicon-shadow.svg +51 -0
- package/ui/dist/brand/profclaw-appicon.svg +50 -0
- package/ui/dist/brand/profclaw-favicon-coral-bg-128.png +0 -0
- package/ui/dist/brand/profclaw-favicon-coral-bg-64.png +0 -0
- package/ui/dist/brand/profclaw-favicon-coral-bg.svg +52 -0
- package/ui/dist/brand/profclaw-favicon-coral-body-128.png +0 -0
- package/ui/dist/brand/profclaw-favicon-coral-body.svg +41 -0
- package/ui/dist/brand/profclaw-favicon-shadow-128.png +0 -0
- package/ui/dist/brand/profclaw-favicon-shadow-64.png +0 -0
- package/ui/dist/brand/profclaw-favicon-shadow.svg +51 -0
- package/ui/dist/brand/profclaw-mark-coral-256.png +0 -0
- package/ui/dist/brand/profclaw-mark-coral-64.png +0 -0
- package/ui/dist/brand/profclaw-mark-coral.svg +31 -0
- package/ui/dist/brand/profclaw-mono-white.svg +18 -0
- package/ui/dist/brand/profclaw-text-dark.svg +18 -0
- package/ui/dist/brand/profclaw-text-light.svg +18 -0
- package/ui/dist/brand/profclaw-wordmark-dark.svg +48 -0
- package/ui/dist/brand/profclaw-wordmark-light.svg +48 -0
- package/ui/dist/brand/safari-pinned-tab.svg +15 -0
- package/ui/dist/favicon/android-chrome-192x192.png +0 -0
- package/ui/dist/favicon/android-chrome-384x384.png +0 -0
- package/ui/dist/favicon/android-chrome-512x512.png +0 -0
- package/ui/dist/favicon/apple-touch-icon.png +0 -0
- package/ui/dist/favicon/browserconfig.xml +9 -0
- package/ui/dist/favicon/favicon-16x16.png +0 -0
- package/ui/dist/favicon/favicon-32x32.png +0 -0
- package/ui/dist/favicon/favicon.ico +0 -0
- package/ui/dist/favicon/mstile-150x150.png +0 -0
- package/ui/dist/favicon/safari-pinned-tab.svg +46 -0
- package/ui/dist/favicon/site.webmanifest +22 -0
- package/ui/dist/index.html +32 -0
- package/ui/dist/manifest.json +49 -0
- package/ui/dist/sw.js +124 -0
- package/ui/dist/vite.svg +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as a}from"./index-kb4AJXUB.js";const e=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],o=a("message-square",e);export{o as M};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as a}from"./index-kb4AJXUB.js";const c=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],o=a("pencil",c);export{o as P};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as a}from"./index-kb4AJXUB.js";const o=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],e=a("play",o);export{e as P};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as c,ao as $,j as s,bf as L,aq as z,at as b,ap as A,ar as P,bg as O,bi as _,as as w,bh as G,av as H,bt as K,bu as q,bv as U,bw as V,bx as W,bj as Z,bk as B,bm as J,i as Q}from"./index-kb4AJXUB.js";var x="Popover",[j]=H(x,[_]),g=_(),[X,l]=j(x),E=e=>{const{__scopePopover:n,children:t,open:a,defaultOpen:o,onOpenChange:r,modal:i=!1}=e,p=g(n),f=c.useRef(null),[v,h]=c.useState(!1),[C,u]=$({prop:a,defaultProp:o??!1,onChange:r,caller:x});return s.jsx(L,{...p,children:s.jsx(X,{scope:n,contentId:z(),triggerRef:f,open:C,onOpenChange:u,onOpenToggle:c.useCallback(()=>u(m=>!m),[u]),hasCustomAnchor:v,onCustomAnchorAdd:c.useCallback(()=>h(!0),[]),onCustomAnchorRemove:c.useCallback(()=>h(!1),[]),modal:i,children:t})})};E.displayName=x;var N="PopoverAnchor",Y=c.forwardRef((e,n)=>{const{__scopePopover:t,...a}=e,o=l(N,t),r=g(t),{onCustomAnchorAdd:i,onCustomAnchorRemove:p}=o;return c.useEffect(()=>(i(),()=>p()),[i,p]),s.jsx(O,{...r,...a,ref:n})});Y.displayName=N;var y="PopoverTrigger",F=c.forwardRef((e,n)=>{const{__scopePopover:t,...a}=e,o=l(y,t),r=g(t),i=b(n,o.triggerRef),p=s.jsx(A.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":T(o.open),...a,ref:i,onClick:P(e.onClick,o.onOpenToggle)});return o.hasCustomAnchor?p:s.jsx(O,{asChild:!0,...r,children:p})});F.displayName=y;var R="PopoverPortal",[ee,oe]=j(R,{forceMount:void 0}),S=e=>{const{__scopePopover:n,forceMount:t,children:a,container:o}=e,r=l(R,n);return s.jsx(ee,{scope:n,forceMount:t,children:s.jsx(w,{present:t||r.open,children:s.jsx(G,{asChild:!0,container:o,children:a})})})};S.displayName=R;var d="PopoverContent",D=c.forwardRef((e,n)=>{const t=oe(d,e.__scopePopover),{forceMount:a=t.forceMount,...o}=e,r=l(d,e.__scopePopover);return s.jsx(w,{present:a||r.open,children:r.modal?s.jsx(re,{...o,ref:n}):s.jsx(ne,{...o,ref:n})})});D.displayName=d;var te=U("PopoverContent.RemoveScroll"),re=c.forwardRef((e,n)=>{const t=l(d,e.__scopePopover),a=c.useRef(null),o=b(n,a),r=c.useRef(!1);return c.useEffect(()=>{const i=a.current;if(i)return K(i)},[]),s.jsx(q,{as:te,allowPinchZoom:!0,children:s.jsx(M,{...e,ref:o,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:P(e.onCloseAutoFocus,i=>{i.preventDefault(),r.current||t.triggerRef.current?.focus()}),onPointerDownOutside:P(e.onPointerDownOutside,i=>{const p=i.detail.originalEvent,f=p.button===0&&p.ctrlKey===!0,v=p.button===2||f;r.current=v},{checkForDefaultPrevented:!1}),onFocusOutside:P(e.onFocusOutside,i=>i.preventDefault(),{checkForDefaultPrevented:!1})})})}),ne=c.forwardRef((e,n)=>{const t=l(d,e.__scopePopover),a=c.useRef(!1),o=c.useRef(!1);return s.jsx(M,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:r=>{e.onCloseAutoFocus?.(r),r.defaultPrevented||(a.current||t.triggerRef.current?.focus(),r.preventDefault()),a.current=!1,o.current=!1},onInteractOutside:r=>{e.onInteractOutside?.(r),r.defaultPrevented||(a.current=!0,r.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const i=r.target;t.triggerRef.current?.contains(i)&&r.preventDefault(),r.detail.originalEvent.type==="focusin"&&o.current&&r.preventDefault()}})}),M=c.forwardRef((e,n)=>{const{__scopePopover:t,trapFocus:a,onOpenAutoFocus:o,onCloseAutoFocus:r,disableOutsidePointerEvents:i,onEscapeKeyDown:p,onPointerDownOutside:f,onFocusOutside:v,onInteractOutside:h,...C}=e,u=l(d,t),m=g(t);return V(),s.jsx(W,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:o,onUnmountAutoFocus:r,children:s.jsx(Z,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:h,onEscapeKeyDown:p,onPointerDownOutside:f,onFocusOutside:v,onDismiss:()=>u.onOpenChange(!1),children:s.jsx(B,{"data-state":T(u.open),role:"dialog",id:u.contentId,...m,...C,ref:n,style:{...C.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),k="PopoverClose",ae=c.forwardRef((e,n)=>{const{__scopePopover:t,...a}=e,o=l(k,t);return s.jsx(A.button,{type:"button",...a,ref:n,onClick:P(e.onClick,()=>o.onOpenChange(!1))})});ae.displayName=k;var se="PopoverArrow",ce=c.forwardRef((e,n)=>{const{__scopePopover:t,...a}=e,o=g(t);return s.jsx(J,{...o,...a,ref:n})});ce.displayName=se;function T(e){return e?"open":"closed"}var ie=E,pe=F,le=S,I=D;const fe=ie,ve=pe,ue=c.forwardRef(({className:e,align:n="center",sideOffset:t=4,...a},o)=>s.jsx(le,{children:s.jsx(I,{ref:o,align:n,sideOffset:t,className:Q("z-50 w-72 rounded-xl p-4 modal-glass outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2","data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2","data-[side=top]:slide-in-from-bottom-2",e),...a})}));ue.displayName=I.displayName;export{fe as P,ve as a,ue as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e,i}from"./index-kb4AJXUB.js";function u({className:s,value:a=0,max:r=100,indicatorClassName:t,...l}){const n=Math.min(100,Math.max(0,a/r*100));return e.jsx("div",{role:"progressbar","aria-valuemin":0,"aria-valuemax":r,"aria-valuenow":a,className:i("relative h-2 w-full overflow-hidden rounded-full bg-muted",s),...l,children:e.jsx("div",{className:i("h-full bg-primary transition-all duration-300 ease-out",t),style:{width:`${n}%`}})})}export{u as P};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as t}from"./index-kb4AJXUB.js";const a=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]],h=t("clipboard-list",a);const e=[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]],d=t("rocket",e);export{h as C,d as R};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as n,j as r,ap as _,ba as ht,ao as Te,bf as vt,aq as Ie,at as L,au as z,bi as Re,bG as gt,bg as xt,ar as N,bh as St,br as Pe,av as wt,bH as yt,bt as Ct,bw as It,bu as bt,bx as Tt,bj as Nt,bv as Rt,bk as Pt,bm as Et,a5 as Ee,i as G,O as _t}from"./index-kb4AJXUB.js";import{C as jt}from"./chevron-up-BRTtndUZ.js";function Ne(t,[o,e]){return Math.min(e,Math.max(o,t))}function Mt(t){const o=n.useRef({value:t,previous:t});return n.useMemo(()=>(o.current.value!==t&&(o.current.previous=o.current.value,o.current.value=t),o.current.previous),[t])}var _e=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),At="VisuallyHidden",je=n.forwardRef((t,o)=>r.jsx(_.span,{...t,ref:o,style:{..._e,...t.style}}));je.displayName=At;var vo=je,Ot=[" ","Enter","ArrowUp","ArrowDown"],Dt=[" ","Enter"],Q="Select",[ie,de,Lt]=gt(Q),[oe]=wt(Q,[Lt,Re]),ue=Re(),[kt,Y]=oe(Q),[Bt,Vt]=oe(Q),Me=t=>{const{__scopeSelect:o,children:e,open:l,defaultOpen:a,onOpenChange:u,value:s,defaultValue:c,onValueChange:i,dir:f,name:g,autoComplete:w,disabled:R,required:b,form:C}=t,d=ue(o),[h,x]=n.useState(null),[m,v]=n.useState(null),[F,M]=n.useState(!1),ne=ht(f),[P,O]=Te({prop:l,defaultProp:a??!1,onChange:u,caller:Q}),[W,X]=Te({prop:s,defaultProp:c,onChange:i,caller:Q}),k=n.useRef(null),B=h?C||!!h.closest("form"):!0,[K,V]=n.useState(new Set),H=Array.from(K).map(E=>E.props.value).join(";");return r.jsx(vt,{...d,children:r.jsxs(kt,{required:b,scope:o,trigger:h,onTriggerChange:x,valueNode:m,onValueNodeChange:v,valueNodeHasChildren:F,onValueNodeHasChildrenChange:M,contentId:Ie(),value:W,onValueChange:X,open:P,onOpenChange:O,dir:ne,triggerPointerDownPosRef:k,disabled:R,children:[r.jsx(ie.Provider,{scope:o,children:r.jsx(Bt,{scope:t.__scopeSelect,onNativeOptionAdd:n.useCallback(E=>{V(D=>new Set(D).add(E))},[]),onNativeOptionRemove:n.useCallback(E=>{V(D=>{const U=new Set(D);return U.delete(E),U})},[]),children:e})}),B?r.jsxs(ot,{"aria-hidden":!0,required:b,tabIndex:-1,name:g,autoComplete:w,value:W,onChange:E=>X(E.target.value),disabled:R,form:C,children:[W===void 0?r.jsx("option",{value:""}):null,Array.from(K)]},H):null]})})};Me.displayName=Q;var Ae="SelectTrigger",Oe=n.forwardRef((t,o)=>{const{__scopeSelect:e,disabled:l=!1,...a}=t,u=ue(e),s=Y(Ae,e),c=s.disabled||l,i=L(o,s.onTriggerChange),f=de(e),g=n.useRef("touch"),[w,R,b]=rt(d=>{const h=f().filter(v=>!v.disabled),x=h.find(v=>v.value===s.value),m=st(h,d,x);m!==void 0&&s.onValueChange(m.value)}),C=d=>{c||(s.onOpenChange(!0),b()),d&&(s.triggerPointerDownPosRef.current={x:Math.round(d.pageX),y:Math.round(d.pageY)})};return r.jsx(xt,{asChild:!0,...u,children:r.jsx(_.button,{type:"button",role:"combobox","aria-controls":s.contentId,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":"none",dir:s.dir,"data-state":s.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":nt(s.value)?"":void 0,...a,ref:i,onClick:N(a.onClick,d=>{d.currentTarget.focus(),g.current!=="mouse"&&C(d)}),onPointerDown:N(a.onPointerDown,d=>{g.current=d.pointerType;const h=d.target;h.hasPointerCapture(d.pointerId)&&h.releasePointerCapture(d.pointerId),d.button===0&&d.ctrlKey===!1&&d.pointerType==="mouse"&&(C(d),d.preventDefault())}),onKeyDown:N(a.onKeyDown,d=>{const h=w.current!=="";!(d.ctrlKey||d.altKey||d.metaKey)&&d.key.length===1&&R(d.key),!(h&&d.key===" ")&&Ot.includes(d.key)&&(C(),d.preventDefault())})})})});Oe.displayName=Ae;var De="SelectValue",Le=n.forwardRef((t,o)=>{const{__scopeSelect:e,className:l,style:a,children:u,placeholder:s="",...c}=t,i=Y(De,e),{onValueNodeHasChildrenChange:f}=i,g=u!==void 0,w=L(o,i.onValueNodeChange);return z(()=>{f(g)},[f,g]),r.jsx(_.span,{...c,ref:w,style:{pointerEvents:"none"},children:nt(i.value)?r.jsx(r.Fragment,{children:s}):u})});Le.displayName=De;var Ht="SelectIcon",ke=n.forwardRef((t,o)=>{const{__scopeSelect:e,children:l,...a}=t;return r.jsx(_.span,{"aria-hidden":!0,...a,ref:o,children:l||"▼"})});ke.displayName=Ht;var Ut="SelectPortal",Be=t=>r.jsx(St,{asChild:!0,...t});Be.displayName=Ut;var ee="SelectContent",Ve=n.forwardRef((t,o)=>{const e=Y(ee,t.__scopeSelect),[l,a]=n.useState();if(z(()=>{a(new DocumentFragment)},[]),!e.open){const u=l;return u?Pe.createPortal(r.jsx(He,{scope:t.__scopeSelect,children:r.jsx(ie.Slot,{scope:t.__scopeSelect,children:r.jsx("div",{children:t.children})})}),u):null}return r.jsx(Ue,{...t,ref:o})});Ve.displayName=ee;var A=10,[He,q]=oe(ee),Ft="SelectContentImpl",Wt=Rt("SelectContent.RemoveScroll"),Ue=n.forwardRef((t,o)=>{const{__scopeSelect:e,position:l="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:u,onPointerDownOutside:s,side:c,sideOffset:i,align:f,alignOffset:g,arrowPadding:w,collisionBoundary:R,collisionPadding:b,sticky:C,hideWhenDetached:d,avoidCollisions:h,...x}=t,m=Y(ee,e),[v,F]=n.useState(null),[M,ne]=n.useState(null),P=L(o,p=>F(p)),[O,W]=n.useState(null),[X,k]=n.useState(null),B=de(e),[K,V]=n.useState(!1),H=n.useRef(!1);n.useEffect(()=>{if(v)return Ct(v)},[v]),It();const E=n.useCallback(p=>{const[I,...j]=B().map(T=>T.ref.current),[S]=j.slice(-1),y=document.activeElement;for(const T of p)if(T===y||(T?.scrollIntoView({block:"nearest"}),T===I&&M&&(M.scrollTop=0),T===S&&M&&(M.scrollTop=M.scrollHeight),T?.focus(),document.activeElement!==y))return},[B,M]),D=n.useCallback(()=>E([O,v]),[E,O,v]);n.useEffect(()=>{K&&D()},[K,D]);const{onOpenChange:U,triggerPointerDownPosRef:$}=m;n.useEffect(()=>{if(v){let p={x:0,y:0};const I=S=>{p={x:Math.abs(Math.round(S.pageX)-($.current?.x??0)),y:Math.abs(Math.round(S.pageY)-($.current?.y??0))}},j=S=>{p.x<=10&&p.y<=10?S.preventDefault():v.contains(S.target)||U(!1),document.removeEventListener("pointermove",I),$.current=null};return $.current!==null&&(document.addEventListener("pointermove",I),document.addEventListener("pointerup",j,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",I),document.removeEventListener("pointerup",j,{capture:!0})}}},[v,U,$]),n.useEffect(()=>{const p=()=>U(!1);return window.addEventListener("blur",p),window.addEventListener("resize",p),()=>{window.removeEventListener("blur",p),window.removeEventListener("resize",p)}},[U]);const[pe,ae]=rt(p=>{const I=B().filter(y=>!y.disabled),j=I.find(y=>y.ref.current===document.activeElement),S=st(I,p,j);S&&setTimeout(()=>S.ref.current.focus())}),fe=n.useCallback((p,I,j)=>{const S=!H.current&&!j;(m.value!==void 0&&m.value===I||S)&&(W(p),S&&(H.current=!0))},[m.value]),me=n.useCallback(()=>v?.focus(),[v]),te=n.useCallback((p,I,j)=>{const S=!H.current&&!j;(m.value!==void 0&&m.value===I||S)&&k(p)},[m.value]),le=l==="popper"?xe:Fe,re=le===xe?{side:c,sideOffset:i,align:f,alignOffset:g,arrowPadding:w,collisionBoundary:R,collisionPadding:b,sticky:C,hideWhenDetached:d,avoidCollisions:h}:{};return r.jsx(He,{scope:e,content:v,viewport:M,onViewportChange:ne,itemRefCallback:fe,selectedItem:O,onItemLeave:me,itemTextRefCallback:te,focusSelectedItem:D,selectedItemText:X,position:l,isPositioned:K,searchRef:pe,children:r.jsx(bt,{as:Wt,allowPinchZoom:!0,children:r.jsx(Tt,{asChild:!0,trapped:m.open,onMountAutoFocus:p=>{p.preventDefault()},onUnmountAutoFocus:N(a,p=>{m.trigger?.focus({preventScroll:!0}),p.preventDefault()}),children:r.jsx(Nt,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:u,onPointerDownOutside:s,onFocusOutside:p=>p.preventDefault(),onDismiss:()=>m.onOpenChange(!1),children:r.jsx(le,{role:"listbox",id:m.contentId,"data-state":m.open?"open":"closed",dir:m.dir,onContextMenu:p=>p.preventDefault(),...x,...re,onPlaced:()=>V(!0),ref:P,style:{display:"flex",flexDirection:"column",outline:"none",...x.style},onKeyDown:N(x.onKeyDown,p=>{const I=p.ctrlKey||p.altKey||p.metaKey;if(p.key==="Tab"&&p.preventDefault(),!I&&p.key.length===1&&ae(p.key),["ArrowUp","ArrowDown","Home","End"].includes(p.key)){let S=B().filter(y=>!y.disabled).map(y=>y.ref.current);if(["ArrowUp","End"].includes(p.key)&&(S=S.slice().reverse()),["ArrowUp","ArrowDown"].includes(p.key)){const y=p.target,T=S.indexOf(y);S=S.slice(T+1)}setTimeout(()=>E(S)),p.preventDefault()}})})})})})})});Ue.displayName=Ft;var Kt="SelectItemAlignedPosition",Fe=n.forwardRef((t,o)=>{const{__scopeSelect:e,onPlaced:l,...a}=t,u=Y(ee,e),s=q(ee,e),[c,i]=n.useState(null),[f,g]=n.useState(null),w=L(o,P=>g(P)),R=de(e),b=n.useRef(!1),C=n.useRef(!0),{viewport:d,selectedItem:h,selectedItemText:x,focusSelectedItem:m}=s,v=n.useCallback(()=>{if(u.trigger&&u.valueNode&&c&&f&&d&&h&&x){const P=u.trigger.getBoundingClientRect(),O=f.getBoundingClientRect(),W=u.valueNode.getBoundingClientRect(),X=x.getBoundingClientRect();if(u.dir!=="rtl"){const y=X.left-O.left,T=W.left-y,Z=P.left-T,J=P.width+Z,he=Math.max(J,O.width),ve=window.innerWidth-A,ge=Ne(T,[A,Math.max(A,ve-he)]);c.style.minWidth=J+"px",c.style.left=ge+"px"}else{const y=O.right-X.right,T=window.innerWidth-W.right-y,Z=window.innerWidth-P.right-T,J=P.width+Z,he=Math.max(J,O.width),ve=window.innerWidth-A,ge=Ne(T,[A,Math.max(A,ve-he)]);c.style.minWidth=J+"px",c.style.right=ge+"px"}const k=R(),B=window.innerHeight-A*2,K=d.scrollHeight,V=window.getComputedStyle(f),H=parseInt(V.borderTopWidth,10),E=parseInt(V.paddingTop,10),D=parseInt(V.borderBottomWidth,10),U=parseInt(V.paddingBottom,10),$=H+E+K+U+D,pe=Math.min(h.offsetHeight*5,$),ae=window.getComputedStyle(d),fe=parseInt(ae.paddingTop,10),me=parseInt(ae.paddingBottom,10),te=P.top+P.height/2-A,le=B-te,re=h.offsetHeight/2,p=h.offsetTop+re,I=H+E+p,j=$-I;if(I<=te){const y=k.length>0&&h===k[k.length-1].ref.current;c.style.bottom="0px";const T=f.clientHeight-d.offsetTop-d.offsetHeight,Z=Math.max(le,re+(y?me:0)+T+D),J=I+Z;c.style.height=J+"px"}else{const y=k.length>0&&h===k[0].ref.current;c.style.top="0px";const Z=Math.max(te,H+d.offsetTop+(y?fe:0)+re)+j;c.style.height=Z+"px",d.scrollTop=I-te+d.offsetTop}c.style.margin=`${A}px 0`,c.style.minHeight=pe+"px",c.style.maxHeight=B+"px",l?.(),requestAnimationFrame(()=>b.current=!0)}},[R,u.trigger,u.valueNode,c,f,d,h,x,u.dir,l]);z(()=>v(),[v]);const[F,M]=n.useState();z(()=>{f&&M(window.getComputedStyle(f).zIndex)},[f]);const ne=n.useCallback(P=>{P&&C.current===!0&&(v(),m?.(),C.current=!1)},[v,m]);return r.jsx(zt,{scope:e,contentWrapper:c,shouldExpandOnScrollRef:b,onScrollButtonChange:ne,children:r.jsx("div",{ref:i,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:F},children:r.jsx(_.div,{...a,ref:w,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});Fe.displayName=Kt;var $t="SelectPopperPosition",xe=n.forwardRef((t,o)=>{const{__scopeSelect:e,align:l="start",collisionPadding:a=A,...u}=t,s=ue(e);return r.jsx(Pt,{...s,...u,ref:o,align:l,collisionPadding:a,style:{boxSizing:"border-box",...u.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});xe.displayName=$t;var[zt,be]=oe(ee,{}),Se="SelectViewport",We=n.forwardRef((t,o)=>{const{__scopeSelect:e,nonce:l,...a}=t,u=q(Se,e),s=be(Se,e),c=L(o,u.onViewportChange),i=n.useRef(0);return r.jsxs(r.Fragment,{children:[r.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),r.jsx(ie.Slot,{scope:e,children:r.jsx(_.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:N(a.onScroll,f=>{const g=f.currentTarget,{contentWrapper:w,shouldExpandOnScrollRef:R}=s;if(R?.current&&w){const b=Math.abs(i.current-g.scrollTop);if(b>0){const C=window.innerHeight-A*2,d=parseFloat(w.style.minHeight),h=parseFloat(w.style.height),x=Math.max(d,h);if(x<C){const m=x+b,v=Math.min(C,m),F=m-v;w.style.height=v+"px",w.style.bottom==="0px"&&(g.scrollTop=F>0?F:0,w.style.justifyContent="flex-end")}}}i.current=g.scrollTop})})})]})});We.displayName=Se;var Ke="SelectGroup",[Gt,Yt]=oe(Ke),qt=n.forwardRef((t,o)=>{const{__scopeSelect:e,...l}=t,a=Ie();return r.jsx(Gt,{scope:e,id:a,children:r.jsx(_.div,{role:"group","aria-labelledby":a,...l,ref:o})})});qt.displayName=Ke;var $e="SelectLabel",ze=n.forwardRef((t,o)=>{const{__scopeSelect:e,...l}=t,a=Yt($e,e);return r.jsx(_.div,{id:a.id,...l,ref:o})});ze.displayName=$e;var ce="SelectItem",[Xt,Ge]=oe(ce),Ye=n.forwardRef((t,o)=>{const{__scopeSelect:e,value:l,disabled:a=!1,textValue:u,...s}=t,c=Y(ce,e),i=q(ce,e),f=c.value===l,[g,w]=n.useState(u??""),[R,b]=n.useState(!1),C=L(o,m=>i.itemRefCallback?.(m,l,a)),d=Ie(),h=n.useRef("touch"),x=()=>{a||(c.onValueChange(l),c.onOpenChange(!1))};if(l==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return r.jsx(Xt,{scope:e,value:l,disabled:a,textId:d,isSelected:f,onItemTextChange:n.useCallback(m=>{w(v=>v||(m?.textContent??"").trim())},[]),children:r.jsx(ie.ItemSlot,{scope:e,value:l,disabled:a,textValue:g,children:r.jsx(_.div,{role:"option","aria-labelledby":d,"data-highlighted":R?"":void 0,"aria-selected":f&&R,"data-state":f?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...s,ref:C,onFocus:N(s.onFocus,()=>b(!0)),onBlur:N(s.onBlur,()=>b(!1)),onClick:N(s.onClick,()=>{h.current!=="mouse"&&x()}),onPointerUp:N(s.onPointerUp,()=>{h.current==="mouse"&&x()}),onPointerDown:N(s.onPointerDown,m=>{h.current=m.pointerType}),onPointerMove:N(s.onPointerMove,m=>{h.current=m.pointerType,a?i.onItemLeave?.():h.current==="mouse"&&m.currentTarget.focus({preventScroll:!0})}),onPointerLeave:N(s.onPointerLeave,m=>{m.currentTarget===document.activeElement&&i.onItemLeave?.()}),onKeyDown:N(s.onKeyDown,m=>{i.searchRef?.current!==""&&m.key===" "||(Dt.includes(m.key)&&x(),m.key===" "&&m.preventDefault())})})})})});Ye.displayName=ce;var se="SelectItemText",qe=n.forwardRef((t,o)=>{const{__scopeSelect:e,className:l,style:a,...u}=t,s=Y(se,e),c=q(se,e),i=Ge(se,e),f=Vt(se,e),[g,w]=n.useState(null),R=L(o,x=>w(x),i.onItemTextChange,x=>c.itemTextRefCallback?.(x,i.value,i.disabled)),b=g?.textContent,C=n.useMemo(()=>r.jsx("option",{value:i.value,disabled:i.disabled,children:b},i.value),[i.disabled,i.value,b]),{onNativeOptionAdd:d,onNativeOptionRemove:h}=f;return z(()=>(d(C),()=>h(C)),[d,h,C]),r.jsxs(r.Fragment,{children:[r.jsx(_.span,{id:i.textId,...u,ref:R}),i.isSelected&&s.valueNode&&!s.valueNodeHasChildren?Pe.createPortal(u.children,s.valueNode):null]})});qe.displayName=se;var Xe="SelectItemIndicator",Ze=n.forwardRef((t,o)=>{const{__scopeSelect:e,...l}=t;return Ge(Xe,e).isSelected?r.jsx(_.span,{"aria-hidden":!0,...l,ref:o}):null});Ze.displayName=Xe;var we="SelectScrollUpButton",Je=n.forwardRef((t,o)=>{const e=q(we,t.__scopeSelect),l=be(we,t.__scopeSelect),[a,u]=n.useState(!1),s=L(o,l.onScrollButtonChange);return z(()=>{if(e.viewport&&e.isPositioned){let c=function(){const f=i.scrollTop>0;u(f)};const i=e.viewport;return c(),i.addEventListener("scroll",c),()=>i.removeEventListener("scroll",c)}},[e.viewport,e.isPositioned]),a?r.jsx(et,{...t,ref:s,onAutoScroll:()=>{const{viewport:c,selectedItem:i}=e;c&&i&&(c.scrollTop=c.scrollTop-i.offsetHeight)}}):null});Je.displayName=we;var ye="SelectScrollDownButton",Qe=n.forwardRef((t,o)=>{const e=q(ye,t.__scopeSelect),l=be(ye,t.__scopeSelect),[a,u]=n.useState(!1),s=L(o,l.onScrollButtonChange);return z(()=>{if(e.viewport&&e.isPositioned){let c=function(){const f=i.scrollHeight-i.clientHeight,g=Math.ceil(i.scrollTop)<f;u(g)};const i=e.viewport;return c(),i.addEventListener("scroll",c),()=>i.removeEventListener("scroll",c)}},[e.viewport,e.isPositioned]),a?r.jsx(et,{...t,ref:s,onAutoScroll:()=>{const{viewport:c,selectedItem:i}=e;c&&i&&(c.scrollTop=c.scrollTop+i.offsetHeight)}}):null});Qe.displayName=ye;var et=n.forwardRef((t,o)=>{const{__scopeSelect:e,onAutoScroll:l,...a}=t,u=q("SelectScrollButton",e),s=n.useRef(null),c=de(e),i=n.useCallback(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]);return n.useEffect(()=>()=>i(),[i]),z(()=>{c().find(g=>g.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),r.jsx(_.div,{"aria-hidden":!0,...a,ref:o,style:{flexShrink:0,...a.style},onPointerDown:N(a.onPointerDown,()=>{s.current===null&&(s.current=window.setInterval(l,50))}),onPointerMove:N(a.onPointerMove,()=>{u.onItemLeave?.(),s.current===null&&(s.current=window.setInterval(l,50))}),onPointerLeave:N(a.onPointerLeave,()=>{i()})})}),Zt="SelectSeparator",tt=n.forwardRef((t,o)=>{const{__scopeSelect:e,...l}=t;return r.jsx(_.div,{"aria-hidden":!0,...l,ref:o})});tt.displayName=Zt;var Ce="SelectArrow",Jt=n.forwardRef((t,o)=>{const{__scopeSelect:e,...l}=t,a=ue(e),u=Y(Ce,e),s=q(Ce,e);return u.open&&s.position==="popper"?r.jsx(Et,{...a,...l,ref:o}):null});Jt.displayName=Ce;var Qt="SelectBubbleInput",ot=n.forwardRef(({__scopeSelect:t,value:o,...e},l)=>{const a=n.useRef(null),u=L(l,a),s=Mt(o);return n.useEffect(()=>{const c=a.current;if(!c)return;const i=window.HTMLSelectElement.prototype,g=Object.getOwnPropertyDescriptor(i,"value").set;if(s!==o&&g){const w=new Event("change",{bubbles:!0});g.call(c,o),c.dispatchEvent(w)}},[s,o]),r.jsx(_.select,{...e,style:{..._e,...e.style},ref:u,defaultValue:o})});ot.displayName=Qt;function nt(t){return t===""||t===void 0}function rt(t){const o=yt(t),e=n.useRef(""),l=n.useRef(0),a=n.useCallback(s=>{const c=e.current+s;o(c),(function i(f){e.current=f,window.clearTimeout(l.current),f!==""&&(l.current=window.setTimeout(()=>i(""),1e3))})(c)},[o]),u=n.useCallback(()=>{e.current="",window.clearTimeout(l.current)},[]);return n.useEffect(()=>()=>window.clearTimeout(l.current),[]),[e,a,u]}function st(t,o,e){const a=o.length>1&&Array.from(o).every(f=>f===o[0])?o[0]:o,u=e?t.indexOf(e):-1;let s=eo(t,Math.max(u,0));a.length===1&&(s=s.filter(f=>f!==e));const i=s.find(f=>f.textValue.toLowerCase().startsWith(a.toLowerCase()));return i!==e?i:void 0}function eo(t,o){return t.map((e,l)=>t[(o+l)%t.length])}var to=Me,at=Oe,oo=Le,no=ke,ro=Be,lt=Ve,so=We,ct=ze,it=Ye,ao=qe,lo=Ze,dt=Je,ut=Qe,pt=tt;const go=to,xo=oo,co=n.forwardRef(({className:t,children:o,...e},l)=>r.jsxs(at,{ref:l,className:G("flex h-10 w-full items-center justify-between rounded-xl border-none field-recessed px-4 py-2 text-sm focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 transition-all",t),...e,children:[o,r.jsx(no,{asChild:!0,children:r.jsx(Ee,{className:"h-4 w-4 opacity-50"})})]}));co.displayName=at.displayName;const ft=n.forwardRef(({className:t,...o},e)=>r.jsx(dt,{ref:e,className:G("flex cursor-default items-center justify-center py-1",t),...o,children:r.jsx(jt,{className:"h-4 w-4"})}));ft.displayName=dt.displayName;const mt=n.forwardRef(({className:t,...o},e)=>r.jsx(ut,{ref:e,className:G("flex cursor-default items-center justify-center py-1",t),...o,children:r.jsx(Ee,{className:"h-4 w-4"})}));mt.displayName=ut.displayName;const io=n.forwardRef(({className:t,children:o,position:e="popper",...l},a)=>r.jsx(ro,{children:r.jsxs(lt,{ref:a,className:G("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-xl modal-glass data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:e,...l,children:[r.jsx(ft,{}),r.jsx(so,{className:G("p-1",e==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:o}),r.jsx(mt,{})]})}));io.displayName=lt.displayName;const uo=n.forwardRef(({className:t,...o},e)=>r.jsx(ct,{ref:e,className:G("py-1.5 pl-8 pr-2 text-sm font-semibold",t),...o}));uo.displayName=ct.displayName;const po=n.forwardRef(({className:t,children:o,...e},l)=>r.jsxs(it,{ref:l,className:G("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-[var(--accent)] focus:text-[var(--accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 transition-colors",t),...e,children:[r.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(lo,{children:r.jsx(_t,{className:"h-4 w-4"})})}),r.jsx(ao,{children:o})]}));po.displayName=it.displayName;const fo=n.forwardRef(({className:t,...o},e)=>r.jsx(pt,{ref:e,className:G("-mx-1 my-1 h-px bg-[var(--muted)]",t),...o}));fo.displayName=pt.displayName;export{vo as R,go as S,co as a,xo as b,io as c,po as d,Mt as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as a}from"./index-kb4AJXUB.js";const e=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],o=a("send",e);export{o as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./index-kb4AJXUB.js";const r=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],i=e("server",r);export{i as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c}from"./index-kb4AJXUB.js";const e=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],i=c("settings-2",e);export{i as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as d,j as e,by as l,bz as r,bA as c,X as u,i as s,bB as h,bC as f,bD as p,bE as x}from"./index-kb4AJXUB.js";const m=[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]],j=d("table",m);function v({...t}){return e.jsx(l,{"data-slot":"sheet",...t})}function b({...t}){return e.jsx(p,{"data-slot":"sheet-portal",...t})}function g({className:t,...a}){return e.jsx(x,{"data-slot":"sheet-overlay",className:s("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...a})}function N({className:t,children:a,side:o="right",showCloseButton:n=!0,...i}){return e.jsxs(b,{children:[e.jsx(g,{}),e.jsxs(r,{"data-slot":"sheet-content",className:s("data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-2xl transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 glass-heavy",o==="right"&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 sm:max-w-sm",o==="left"&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 sm:max-w-sm",o==="top"&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto",o==="bottom"&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto",t),...i,children:[a,n&&e.jsxs(c,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[e.jsx(u,{className:"size-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function S({className:t,...a}){return e.jsx("div",{"data-slot":"sheet-header",className:s("flex flex-col gap-1.5 p-4",t),...a})}function k({className:t,...a}){return e.jsx(h,{"data-slot":"sheet-title",className:s("text-foreground font-semibold",t),...a})}function w({className:t,...a}){return e.jsx(f,{"data-slot":"sheet-description",className:s("text-muted-foreground text-sm",t),...a})}export{v as S,j as T,N as a,S as b,k as c,w as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c}from"./index-kb4AJXUB.js";const e=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],o=c("shield-check",e);export{o as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as a}from"./index-kb4AJXUB.js";const e=[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]],c=a("shield-off",e);export{c as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e,i as o}from"./index-kb4AJXUB.js";function i({className:s,...n}){return e.jsx("div",{className:o("skeleton-glass relative overflow-hidden rounded-xl",s),...n,children:e.jsx("div",{className:"absolute inset-0 skeleton-shimmer"})})}export{i as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as o}from"./index-kb4AJXUB.js";const e=[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]],h=o("code",e);const t=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]],a=o("smartphone",t);export{h as C,a as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./index-kb4AJXUB.js";const t=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],o=e("square",t);export{o as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as s,at as g,ao as B,j as a,ap as k,ar as T,b9 as I,av as M,i as H}from"./index-kb4AJXUB.js";import{u as A}from"./select-LsO16slr.js";var b="Switch",[U]=M(b),[X,q]=U(b),y=s.forwardRef((t,o)=>{const{__scopeSwitch:e,name:n,checked:r,defaultChecked:m,required:l,disabled:i,value:u="on",onCheckedChange:w,form:c,...v}=t,[d,p]=s.useState(null),S=g(o,h=>p(h)),x=s.useRef(!1),C=d?c||!!d.closest("form"):!0,[f,_]=B({prop:r,defaultProp:m??!1,onChange:w,caller:b});return a.jsxs(X,{scope:e,checked:f,disabled:i,children:[a.jsx(k.button,{type:"button",role:"switch","aria-checked":f,"aria-required":l,"data-state":j(f),"data-disabled":i?"":void 0,disabled:i,value:u,...v,ref:S,onClick:T(t.onClick,h=>{_(N=>!N),C&&(x.current=h.isPropagationStopped(),x.current||h.stopPropagation())})}),C&&a.jsx(R,{control:d,bubbles:!x.current,name:n,value:u,checked:f,required:l,disabled:i,form:c,style:{transform:"translateX(-100%)"}})]})});y.displayName=b;var P="SwitchThumb",E=s.forwardRef((t,o)=>{const{__scopeSwitch:e,...n}=t,r=q(P,e);return a.jsx(k.span,{"data-state":j(r.checked),"data-disabled":r.disabled?"":void 0,...n,ref:o})});E.displayName=P;var z="SwitchBubbleInput",R=s.forwardRef(({__scopeSwitch:t,control:o,checked:e,bubbles:n=!0,...r},m)=>{const l=s.useRef(null),i=g(l,m),u=A(e),w=I(o);return s.useEffect(()=>{const c=l.current;if(!c)return;const v=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(v,"checked").set;if(u!==e&&p){const S=new Event("click",{bubbles:n});p.call(c,e),c.dispatchEvent(S)}},[u,e,n]),a.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:e,...r,tabIndex:-1,ref:i,style:{...r.style,...w,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});R.displayName=z;function j(t){return t?"checked":"unchecked"}var L=y,O=E;function W({className:t,checked:o,...e}){return a.jsx(L,{"data-slot":"switch",checked:o,className:H("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full","border-2 border-transparent shadow-sm transition-colors duration-200","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50",t),style:{backgroundColor:o?"var(--primary)":"#a1a1aa"},...e,children:a.jsx(O,{"data-slot":"switch-thumb",className:"pointer-events-none block h-5 w-5 rounded-full bg-white shadow-lg ring-0 transition-transform duration-200",style:{transform:o?"translateX(20px)":"translateX(0px)"}})})}export{W as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as o,j as t,i as r}from"./index-kb4AJXUB.js";const l=o.forwardRef(({className:a,...e},s)=>t.jsx("div",{className:"relative w-full overflow-auto",children:t.jsx("table",{ref:s,className:r("w-full caption-bottom text-sm",a),...e})}));l.displayName="Table";const d=o.forwardRef(({className:a,...e},s)=>t.jsx("thead",{ref:s,className:r("[&_tr]:border-b",a),...e}));d.displayName="TableHeader";const m=o.forwardRef(({className:a,...e},s)=>t.jsx("tbody",{ref:s,className:r("[&_tr:last-child]:border-0",a),...e}));m.displayName="TableBody";const b=o.forwardRef(({className:a,...e},s)=>t.jsx("tfoot",{ref:s,className:r("border-t bg-[var(--muted)]/50 font-medium [&>tr]:last:border-b-0",a),...e}));b.displayName="TableFooter";const c=o.forwardRef(({className:a,...e},s)=>t.jsx("tr",{ref:s,className:r("border-b transition-colors hover:bg-[var(--muted)]/50 data-[state=selected]:bg-[var(--muted)]",a),...e}));c.displayName="TableRow";const i=o.forwardRef(({className:a,...e},s)=>t.jsx("th",{ref:s,className:r("h-12 px-4 text-left align-middle font-medium text-[var(--muted-foreground)] [&:has([role=checkbox])]:pr-0",a),...e}));i.displayName="TableHead";const f=o.forwardRef(({className:a,...e},s)=>t.jsx("td",{ref:s,className:r("p-4 align-middle [&:has([role=checkbox])]:pr-0",a),...e}));f.displayName="TableCell";const n=o.forwardRef(({className:a,...e},s)=>t.jsx("caption",{ref:s,className:r("mt-4 text-sm text-[var(--muted-foreground)]",a),...e}));n.displayName="TableCaption";export{l as T,d as a,c as b,i as c,m as d,f as e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c}from"./index-kb4AJXUB.js";const a=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],e=c("tag",a);export{e as T};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as t,j as o,i as s}from"./index-kb4AJXUB.js";const d=t.forwardRef(({className:e,...r},a)=>o.jsx("textarea",{className:s("flex min-h-[80px] w-full rounded-2xl border-none field-recessed px-4 py-3 text-sm transition-all duration-300 placeholder:text-[var(--muted-foreground)]/50 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 font-medium",e),ref:a,...r}));d.displayName="Textarea";export{d as T};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./index-kb4AJXUB.js";const c=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],i=e("circle-question-mark",c);const a=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],n=e("info",a);const o=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],s=e("save",o);const t=[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]],r=e("timer",t);export{i as C,n as I,s as S,r as T};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as s,aq as Y,ao as X,j as u,bf as K,at as N,bg as W,ap as J,ar as y,as as H,bh as Q,bi as S,bj as Z,bk as ee,av as te,bl as oe,bm as re,i as ne}from"./index-kb4AJXUB.js";import{R as se}from"./select-LsO16slr.js";var[_]=te("Tooltip",[S]),O=S(),G="TooltipProvider",ae=700,k="tooltip.open",[ie,L]=_(G),F=e=>{const{__scopeTooltip:o,delayDuration:t=ae,skipDelayDuration:r=300,disableHoverableContent:n=!1,children:l}=e,i=s.useRef(!0),v=s.useRef(!1),a=s.useRef(0);return s.useEffect(()=>{const p=a.current;return()=>window.clearTimeout(p)},[]),u.jsx(ie,{scope:o,isOpenDelayedRef:i,delayDuration:t,onOpen:s.useCallback(()=>{window.clearTimeout(a.current),i.current=!1},[]),onClose:s.useCallback(()=>{window.clearTimeout(a.current),a.current=window.setTimeout(()=>i.current=!0,r)},[r]),isPointerInTransitRef:v,onPointerInTransitChange:s.useCallback(p=>{v.current=p},[]),disableHoverableContent:n,children:l})};F.displayName=G;var R="Tooltip",[le,j]=_(R),$=e=>{const{__scopeTooltip:o,children:t,open:r,defaultOpen:n,onOpenChange:l,disableHoverableContent:i,delayDuration:v}=e,a=L(R,e.__scopeTooltip),p=O(o),[c,f]=s.useState(null),x=Y(),d=s.useRef(0),h=i??a.disableHoverableContent,T=v??a.delayDuration,g=s.useRef(!1),[b,m]=X({prop:r,defaultProp:n??!1,onChange:I=>{I?(a.onOpen(),document.dispatchEvent(new CustomEvent(k))):a.onClose(),l?.(I)},caller:R}),w=s.useMemo(()=>b?g.current?"delayed-open":"instant-open":"closed",[b]),P=s.useCallback(()=>{window.clearTimeout(d.current),d.current=0,g.current=!1,m(!0)},[m]),E=s.useCallback(()=>{window.clearTimeout(d.current),d.current=0,m(!1)},[m]),M=s.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>{g.current=!0,m(!0),d.current=0},T)},[T,m]);return s.useEffect(()=>()=>{d.current&&(window.clearTimeout(d.current),d.current=0)},[]),u.jsx(K,{...p,children:u.jsx(le,{scope:o,contentId:x,open:b,stateAttribute:w,trigger:c,onTriggerChange:f,onTriggerEnter:s.useCallback(()=>{a.isOpenDelayedRef.current?M():P()},[a.isOpenDelayedRef,M,P]),onTriggerLeave:s.useCallback(()=>{h?E():(window.clearTimeout(d.current),d.current=0)},[E,h]),onOpen:P,onClose:E,disableHoverableContent:h,children:t})})};$.displayName=R;var D="TooltipTrigger",B=s.forwardRef((e,o)=>{const{__scopeTooltip:t,...r}=e,n=j(D,t),l=L(D,t),i=O(t),v=s.useRef(null),a=N(o,v,n.onTriggerChange),p=s.useRef(!1),c=s.useRef(!1),f=s.useCallback(()=>p.current=!1,[]);return s.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),u.jsx(W,{asChild:!0,...i,children:u.jsx(J.button,{"aria-describedby":n.open?n.contentId:void 0,"data-state":n.stateAttribute,...r,ref:a,onPointerMove:y(e.onPointerMove,x=>{x.pointerType!=="touch"&&!c.current&&!l.isPointerInTransitRef.current&&(n.onTriggerEnter(),c.current=!0)}),onPointerLeave:y(e.onPointerLeave,()=>{n.onTriggerLeave(),c.current=!1}),onPointerDown:y(e.onPointerDown,()=>{n.open&&n.onClose(),p.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:y(e.onFocus,()=>{p.current||n.onOpen()}),onBlur:y(e.onBlur,n.onClose),onClick:y(e.onClick,n.onClose)})})});B.displayName=D;var A="TooltipPortal",[ce,ue]=_(A,{forceMount:void 0}),q=e=>{const{__scopeTooltip:o,forceMount:t,children:r,container:n}=e,l=j(A,o);return u.jsx(ce,{scope:o,forceMount:t,children:u.jsx(H,{present:t||l.open,children:u.jsx(Q,{asChild:!0,container:n,children:r})})})};q.displayName=A;var C="TooltipContent",z=s.forwardRef((e,o)=>{const t=ue(C,e.__scopeTooltip),{forceMount:r=t.forceMount,side:n="top",...l}=e,i=j(C,e.__scopeTooltip);return u.jsx(H,{present:r||i.open,children:i.disableHoverableContent?u.jsx(U,{side:n,...l,ref:o}):u.jsx(de,{side:n,...l,ref:o})})}),de=s.forwardRef((e,o)=>{const t=j(C,e.__scopeTooltip),r=L(C,e.__scopeTooltip),n=s.useRef(null),l=N(o,n),[i,v]=s.useState(null),{trigger:a,onClose:p}=t,c=n.current,{onPointerInTransitChange:f}=r,x=s.useCallback(()=>{v(null),f(!1)},[f]),d=s.useCallback((h,T)=>{const g=h.currentTarget,b={x:h.clientX,y:h.clientY},m=he(b,g.getBoundingClientRect()),w=ge(b,m),P=Te(T.getBoundingClientRect()),E=be([...w,...P]);v(E),f(!0)},[f]);return s.useEffect(()=>()=>x(),[x]),s.useEffect(()=>{if(a&&c){const h=g=>d(g,c),T=g=>d(g,a);return a.addEventListener("pointerleave",h),c.addEventListener("pointerleave",T),()=>{a.removeEventListener("pointerleave",h),c.removeEventListener("pointerleave",T)}}},[a,c,d,x]),s.useEffect(()=>{if(i){const h=T=>{const g=T.target,b={x:T.clientX,y:T.clientY},m=a?.contains(g)||c?.contains(g),w=!me(b,i);m?x():w&&(x(),p())};return document.addEventListener("pointermove",h),()=>document.removeEventListener("pointermove",h)}},[a,c,i,p,x]),u.jsx(U,{...e,ref:l})}),[pe,fe]=_(R,{isInside:!1}),ve=oe("TooltipContent"),U=s.forwardRef((e,o)=>{const{__scopeTooltip:t,children:r,"aria-label":n,onEscapeKeyDown:l,onPointerDownOutside:i,...v}=e,a=j(C,t),p=O(t),{onClose:c}=a;return s.useEffect(()=>(document.addEventListener(k,c),()=>document.removeEventListener(k,c)),[c]),s.useEffect(()=>{if(a.trigger){const f=x=>{x.target?.contains(a.trigger)&&c()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[a.trigger,c]),u.jsx(Z,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:l,onPointerDownOutside:i,onFocusOutside:f=>f.preventDefault(),onDismiss:c,children:u.jsxs(ee,{"data-state":a.stateAttribute,...p,...v,ref:o,style:{...v.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[u.jsx(ve,{children:r}),u.jsx(pe,{scope:t,isInside:!0,children:u.jsx(se,{id:a.contentId,role:"tooltip",children:n||r})})]})})});z.displayName=C;var V="TooltipArrow",xe=s.forwardRef((e,o)=>{const{__scopeTooltip:t,...r}=e,n=O(t);return fe(V,t).isInside?null:u.jsx(re,{...n,...r,ref:o})});xe.displayName=V;function he(e,o){const t=Math.abs(o.top-e.y),r=Math.abs(o.bottom-e.y),n=Math.abs(o.right-e.x),l=Math.abs(o.left-e.x);switch(Math.min(t,r,n,l)){case l:return"left";case n:return"right";case t:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function ge(e,o,t=5){const r=[];switch(o){case"top":r.push({x:e.x-t,y:e.y+t},{x:e.x+t,y:e.y+t});break;case"bottom":r.push({x:e.x-t,y:e.y-t},{x:e.x+t,y:e.y-t});break;case"left":r.push({x:e.x+t,y:e.y-t},{x:e.x+t,y:e.y+t});break;case"right":r.push({x:e.x-t,y:e.y-t},{x:e.x-t,y:e.y+t});break}return r}function Te(e){const{top:o,right:t,bottom:r,left:n}=e;return[{x:n,y:o},{x:t,y:o},{x:t,y:r},{x:n,y:r}]}function me(e,o){const{x:t,y:r}=e;let n=!1;for(let l=0,i=o.length-1;l<o.length;i=l++){const v=o[l],a=o[i],p=v.x,c=v.y,f=a.x,x=a.y;c>r!=x>r&&t<(f-p)*(r-c)/(x-c)+p&&(n=!n)}return n}function be(e){const o=e.slice();return o.sort((t,r)=>t.x<r.x?-1:t.x>r.x?1:t.y<r.y?-1:t.y>r.y?1:0),ye(o)}function ye(e){if(e.length<=1)return e.slice();const o=[];for(let r=0;r<e.length;r++){const n=e[r];for(;o.length>=2;){const l=o[o.length-1],i=o[o.length-2];if((l.x-i.x)*(n.y-i.y)>=(l.y-i.y)*(n.x-i.x))o.pop();else break}o.push(n)}o.pop();const t=[];for(let r=e.length-1;r>=0;r--){const n=e[r];for(;t.length>=2;){const l=t[t.length-1],i=t[t.length-2];if((l.x-i.x)*(n.y-i.y)>=(l.y-i.y)*(n.x-i.x))t.pop();else break}t.push(n)}return t.pop(),o.length===1&&t.length===1&&o[0].x===t[0].x&&o[0].y===t[0].y?o:o.concat(t)}var Ce=F,we=$,Pe=B,Ee=q,Re=z;function je({delayDuration:e=200,...o}){return u.jsx(Ce,{"data-slot":"tooltip-provider",delayDuration:e,...o})}function ke({...e}){return u.jsx(je,{children:u.jsx(we,{"data-slot":"tooltip",...e})})}function De({...e}){return u.jsx(Pe,{"data-slot":"tooltip-trigger",...e})}function Le({className:e,sideOffset:o=6,children:t,...r}){return u.jsx(Ee,{children:u.jsx(Re,{"data-slot":"tooltip-content",sideOffset:o,className:ne("z-50 w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin)","rounded-2xl px-4 py-3 text-sm","bg-(--card)/80 backdrop-blur-xl backdrop-saturate-150","border border-white/10 shadow-lg shadow-black/10","text-(--foreground)","animate-in fade-in-0 zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...r,children:t})})}export{ke as T,De as a,Le as b,je as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as a}from"./index-kb4AJXUB.js";const t=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],o=a("trash-2",t);export{o as T};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./index-kb4AJXUB.js";const o=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],n=e("trending-up",o);export{n as T};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as a}from"./index-kb4AJXUB.js";const e=[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]],d=a("wand-sparkles",e);export{d as W};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c}from"./index-kb4AJXUB.js";const a=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],o=c("wrench",a);export{o as W};
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VAD (Voice Activity Detection) AudioWorklet Processor
|
|
3
|
+
*
|
|
4
|
+
* Calculates RMS energy per audio frame to detect speech vs silence.
|
|
5
|
+
* Includes noise floor calibration during the first second after activation.
|
|
6
|
+
* Registered as 'vad-processor' for use with AudioWorkletNode.
|
|
7
|
+
*/
|
|
8
|
+
class VadProcessor extends AudioWorkletProcessor {
|
|
9
|
+
constructor(options) {
|
|
10
|
+
super();
|
|
11
|
+
|
|
12
|
+
const opts = options.processorOptions ?? {};
|
|
13
|
+
this._speechThreshold = opts.speechThreshold ?? 0.01;
|
|
14
|
+
this._silenceDuration = opts.silenceDuration ?? 1500;
|
|
15
|
+
this._noiseMultiplier = opts.noiseMultiplier ?? 3;
|
|
16
|
+
|
|
17
|
+
this._speaking = false;
|
|
18
|
+
this._silenceStart = null;
|
|
19
|
+
|
|
20
|
+
// Noise floor calibration state
|
|
21
|
+
this._calibrating = true;
|
|
22
|
+
this._calibrationSamples = [];
|
|
23
|
+
this._calibrationDurationSec = 1.0;
|
|
24
|
+
this._calibrationFrames = Math.ceil((sampleRate * this._calibrationDurationSec) / 128);
|
|
25
|
+
this._calibrationCount = 0;
|
|
26
|
+
this._noiseFloor = 0;
|
|
27
|
+
|
|
28
|
+
// Energy throttle: post at most once per ~100ms
|
|
29
|
+
// sampleRate is available globally in AudioWorkletGlobalScope
|
|
30
|
+
this._framesPerThrottle = Math.ceil((sampleRate * 0.1) / 128);
|
|
31
|
+
this._frameCount = 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Calculate RMS energy from a Float32Array channel buffer.
|
|
36
|
+
* @param {Float32Array} buffer
|
|
37
|
+
* @returns {number} RMS value in range [0, 1]
|
|
38
|
+
*/
|
|
39
|
+
_rms(buffer) {
|
|
40
|
+
let sum = 0;
|
|
41
|
+
for (let i = 0; i < buffer.length; i++) {
|
|
42
|
+
sum += buffer[i] * buffer[i];
|
|
43
|
+
}
|
|
44
|
+
return Math.sqrt(sum / buffer.length);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @param {Float32Array[][]} inputs
|
|
49
|
+
* @returns {boolean}
|
|
50
|
+
*/
|
|
51
|
+
process(inputs) {
|
|
52
|
+
const input = inputs[0];
|
|
53
|
+
if (!input || input.length === 0) return true;
|
|
54
|
+
|
|
55
|
+
const channel = input[0];
|
|
56
|
+
if (!channel || channel.length === 0) return true;
|
|
57
|
+
|
|
58
|
+
const energy = this._rms(channel);
|
|
59
|
+
const now = currentTime * 1000; // currentTime is in seconds
|
|
60
|
+
|
|
61
|
+
// --- Noise floor calibration phase ---
|
|
62
|
+
if (this._calibrating) {
|
|
63
|
+
this._calibrationSamples.push(energy);
|
|
64
|
+
this._calibrationCount++;
|
|
65
|
+
|
|
66
|
+
// Throttled energy updates during calibration
|
|
67
|
+
this._frameCount++;
|
|
68
|
+
if (this._frameCount >= this._framesPerThrottle) {
|
|
69
|
+
this._frameCount = 0;
|
|
70
|
+
this.port.postMessage({ type: 'energy', value: energy });
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (this._calibrationCount >= this._calibrationFrames) {
|
|
74
|
+
// Compute average noise floor
|
|
75
|
+
const sum = this._calibrationSamples.reduce((a, b) => a + b, 0);
|
|
76
|
+
this._noiseFloor = sum / this._calibrationSamples.length;
|
|
77
|
+
|
|
78
|
+
// Dynamic threshold = noiseFloor * multiplier + base speechThreshold
|
|
79
|
+
this._speechThreshold = Math.max(
|
|
80
|
+
this._speechThreshold,
|
|
81
|
+
this._noiseFloor * this._noiseMultiplier + this._speechThreshold
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
this._calibrating = false;
|
|
85
|
+
this._calibrationSamples = [];
|
|
86
|
+
|
|
87
|
+
this.port.postMessage({
|
|
88
|
+
type: 'calibrated',
|
|
89
|
+
noiseFloor: this._noiseFloor,
|
|
90
|
+
threshold: this._speechThreshold,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// --- Normal VAD processing ---
|
|
98
|
+
|
|
99
|
+
// Speech / silence state transitions
|
|
100
|
+
if (energy >= this._speechThreshold) {
|
|
101
|
+
// Active audio detected
|
|
102
|
+
this._silenceStart = null;
|
|
103
|
+
|
|
104
|
+
if (!this._speaking) {
|
|
105
|
+
this._speaking = true;
|
|
106
|
+
this.port.postMessage({ type: 'speech-start' });
|
|
107
|
+
}
|
|
108
|
+
} else {
|
|
109
|
+
// Below threshold
|
|
110
|
+
if (this._speaking) {
|
|
111
|
+
if (this._silenceStart === null) {
|
|
112
|
+
this._silenceStart = now;
|
|
113
|
+
} else if (now - this._silenceStart >= this._silenceDuration) {
|
|
114
|
+
this._speaking = false;
|
|
115
|
+
this._silenceStart = null;
|
|
116
|
+
this.port.postMessage({ type: 'speech-end' });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// Throttled energy updates (~every 100ms)
|
|
122
|
+
this._frameCount++;
|
|
123
|
+
if (this._frameCount >= this._framesPerThrottle) {
|
|
124
|
+
this._frameCount = 0;
|
|
125
|
+
this.port.postMessage({ type: 'energy', value: energy });
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
registerProcessor('vad-processor', VadProcessor);
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 160 160">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
|
|
4
|
+
<stop offset="0%" stop-color="#161220"/>
|
|
5
|
+
<stop offset="100%" stop-color="#0a0810"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<radialGradient id="glow" cx="50%" cy="46%" r="40%">
|
|
8
|
+
<stop offset="0%" stop-color="#f43f5e" stop-opacity=".1"/>
|
|
9
|
+
<stop offset="100%" stop-color="#f43f5e" stop-opacity="0"/>
|
|
10
|
+
</radialGradient>
|
|
11
|
+
<linearGradient id="body" x1="0" y1="0" x2="0" y2="1">
|
|
12
|
+
<stop offset="0%" stop-color="#4a2838"/>
|
|
13
|
+
<stop offset="100%" stop-color="#2e1828"/>
|
|
14
|
+
</linearGradient>
|
|
15
|
+
<radialGradient id="belly" cx="42%" cy="38%" r="45%">
|
|
16
|
+
<stop offset="0%" stop-color="#f43f5e" stop-opacity=".12"/>
|
|
17
|
+
<stop offset="100%" stop-color="#f43f5e" stop-opacity="0"/>
|
|
18
|
+
</radialGradient>
|
|
19
|
+
</defs>
|
|
20
|
+
<rect width="160" height="160" rx="36" fill="url(#bg)"/>
|
|
21
|
+
<rect width="160" height="160" rx="36" fill="url(#glow)"/>
|
|
22
|
+
<rect x=".5" y=".5" width="159" height="159" rx="35.5" fill="none" stroke="#f43f5e" stroke-opacity=".06"/>
|
|
23
|
+
<ellipse cx="80" cy="86" rx="40" ry="38" fill="url(#body)"/>
|
|
24
|
+
<ellipse cx="80" cy="86" rx="40" ry="38" fill="url(#belly)"/>
|
|
25
|
+
<ellipse cx="80" cy="86" rx="39.5" ry="37.5" fill="none" stroke="#f43f5e" stroke-opacity=".12"/>
|
|
26
|
+
<ellipse cx="75" cy="80" rx="22" ry="16" fill="#fb7185" opacity=".05"/>
|
|
27
|
+
<rect x="64" y="120" width="11" height="16" rx="5.5" fill="#2e1828"/>
|
|
28
|
+
<rect x="83" y="120" width="11" height="16" rx="5.5" fill="#2e1828"/>
|
|
29
|
+
<ellipse cx="32" cy="86" rx="13" ry="10" fill="#3a1e2c"/>
|
|
30
|
+
<path d="M24,77 L32,86 L40,77" stroke="#f43f5e" stroke-width="1.8" fill="none" stroke-linecap="round" opacity=".3"/>
|
|
31
|
+
<ellipse cx="128" cy="86" rx="13" ry="10" fill="#3a1e2c"/>
|
|
32
|
+
<path d="M120,77 L128,86 L136,77" stroke="#f43f5e" stroke-width="1.8" fill="none" stroke-linecap="round" opacity=".3"/>
|
|
33
|
+
<line x1="64" y1="50" x2="52" y2="28" stroke="#3a2030" stroke-width="3" stroke-linecap="round"/>
|
|
34
|
+
<circle cx="51" cy="26" r="6" fill="#f43f5e" opacity=".12"/>
|
|
35
|
+
<circle cx="51" cy="26" r="4" fill="#f43f5e" opacity=".45"/>
|
|
36
|
+
<circle cx="51" cy="26" r="1.8" fill="#fb7185" opacity=".8"/>
|
|
37
|
+
<line x1="96" y1="50" x2="108" y2="28" stroke="#3a2030" stroke-width="3" stroke-linecap="round"/>
|
|
38
|
+
<circle cx="109" cy="26" r="6" fill="#f43f5e" opacity=".12"/>
|
|
39
|
+
<circle cx="109" cy="26" r="4" fill="#f43f5e" opacity=".45"/>
|
|
40
|
+
<circle cx="109" cy="26" r="1.8" fill="#fb7185" opacity=".8"/>
|
|
41
|
+
<circle cx="67" cy="82" r="20" fill="#f43f5e" opacity=".1"/>
|
|
42
|
+
<circle cx="93" cy="82" r="20" fill="#f43f5e" opacity=".1"/>
|
|
43
|
+
<circle cx="67" cy="82" r="11" fill="#fff"/>
|
|
44
|
+
<circle cx="93" cy="82" r="11" fill="#fff"/>
|
|
45
|
+
<circle cx="70" cy="80" r="6.5" fill="#4c0519"/>
|
|
46
|
+
<circle cx="96" cy="80" r="6.5" fill="#4c0519"/>
|
|
47
|
+
<circle cx="72.5" cy="78" r="2.8" fill="#fff"/>
|
|
48
|
+
<circle cx="98.5" cy="78" r="2.8" fill="#fff"/>
|
|
49
|
+
<circle cx="67" cy="84" r="1.3" fill="#fff" opacity=".35"/>
|
|
50
|
+
<circle cx="93" cy="84" r="1.3" fill="#fff" opacity=".35"/>
|
|
51
|
+
</svg>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 160 160">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
|
|
4
|
+
<stop offset="0%" stop-color="#161220"/>
|
|
5
|
+
<stop offset="100%" stop-color="#0a0810"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="body" x1="0" y1="0" x2="0" y2="1">
|
|
8
|
+
<stop offset="0%" stop-color="#fb7185"/>
|
|
9
|
+
<stop offset="100%" stop-color="#e11d48"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
<radialGradient id="belly" cx="42%" cy="38%" r="45%">
|
|
12
|
+
<stop offset="0%" stop-color="#fecdd3" stop-opacity=".22"/>
|
|
13
|
+
<stop offset="100%" stop-color="#fecdd3" stop-opacity="0"/>
|
|
14
|
+
</radialGradient>
|
|
15
|
+
<radialGradient id="glow" cx="50%" cy="46%" r="42%">
|
|
16
|
+
<stop offset="0%" stop-color="#f43f5e" stop-opacity=".12"/>
|
|
17
|
+
<stop offset="100%" stop-color="#f43f5e" stop-opacity="0"/>
|
|
18
|
+
</radialGradient>
|
|
19
|
+
</defs>
|
|
20
|
+
<rect width="160" height="160" rx="36" fill="url(#bg)"/>
|
|
21
|
+
<rect width="160" height="160" rx="36" fill="url(#glow)"/>
|
|
22
|
+
<rect x=".5" y=".5" width="159" height="159" rx="35.5" fill="none" stroke="#f43f5e" stroke-opacity=".06"/>
|
|
23
|
+
<ellipse cx="80" cy="84" rx="40" ry="38" fill="url(#body)"/>
|
|
24
|
+
<ellipse cx="80" cy="84" rx="40" ry="38" fill="url(#belly)"/>
|
|
25
|
+
<rect x="64" y="118" width="11" height="16" rx="5.5" fill="#be123c"/>
|
|
26
|
+
<rect x="83" y="118" width="11" height="16" rx="5.5" fill="#be123c"/>
|
|
27
|
+
<ellipse cx="32" cy="84" rx="13" ry="10" fill="#be123c"/>
|
|
28
|
+
<path d="M24,76 L32,84 L40,76" stroke="#0a0810" stroke-width="2" fill="none" stroke-linecap="round"/>
|
|
29
|
+
<ellipse cx="128" cy="84" rx="13" ry="10" fill="#be123c"/>
|
|
30
|
+
<path d="M120,76 L128,84 L136,76" stroke="#0a0810" stroke-width="2" fill="none" stroke-linecap="round"/>
|
|
31
|
+
<line x1="64" y1="48" x2="52" y2="26" stroke="#be123c" stroke-width="3" stroke-linecap="round"/>
|
|
32
|
+
<circle cx="51" cy="24" r="5" fill="#fda4af"/>
|
|
33
|
+
<circle cx="51" cy="24" r="2" fill="#fff" opacity=".4"/>
|
|
34
|
+
<line x1="96" y1="48" x2="108" y2="26" stroke="#be123c" stroke-width="3" stroke-linecap="round"/>
|
|
35
|
+
<circle cx="109" cy="24" r="5" fill="#fda4af"/>
|
|
36
|
+
<circle cx="109" cy="24" r="2" fill="#fff" opacity=".4"/>
|
|
37
|
+
<circle cx="67" cy="80" r="12" fill="#fff"/>
|
|
38
|
+
<circle cx="93" cy="80" r="12" fill="#fff"/>
|
|
39
|
+
<ellipse cx="67" cy="74" rx="11" ry="4" fill="#be123c" opacity=".1"/>
|
|
40
|
+
<ellipse cx="93" cy="74" rx="11" ry="4" fill="#be123c" opacity=".1"/>
|
|
41
|
+
<circle cx="70" cy="79" r="6.5" fill="#4c0519"/>
|
|
42
|
+
<circle cx="96" cy="79" r="6.5" fill="#4c0519"/>
|
|
43
|
+
<circle cx="72.5" cy="77" r="2.8" fill="#fff"/>
|
|
44
|
+
<circle cx="98.5" cy="77" r="2.8" fill="#fff"/>
|
|
45
|
+
<circle cx="67" cy="83" r="1.3" fill="#fff" opacity=".3"/>
|
|
46
|
+
<circle cx="93" cy="83" r="1.3" fill="#fff" opacity=".3"/>
|
|
47
|
+
<line x1="56" y1="66" x2="74" y2="64" stroke="#9f1239" stroke-width="2.5" stroke-linecap="round"/>
|
|
48
|
+
<line x1="104" y1="66" x2="86" y2="64" stroke="#9f1239" stroke-width="2.5" stroke-linecap="round"/>
|
|
49
|
+
<path d="M71,95 Q80,102 92,94" stroke="#9f1239" stroke-width="2.5" fill="none" stroke-linecap="round"/>
|
|
50
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
|
|
4
|
+
<stop offset="0%" stop-color="#fb7185"/>
|
|
5
|
+
<stop offset="100%" stop-color="#e11d48"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<radialGradient id="shine" cx="35%" cy="25%" r="50%">
|
|
8
|
+
<stop offset="0%" stop-color="#fff" stop-opacity=".15"/>
|
|
9
|
+
<stop offset="100%" stop-color="#fff" stop-opacity="0"/>
|
|
10
|
+
</radialGradient>
|
|
11
|
+
<linearGradient id="body" x1="0" y1="0" x2="0" y2="1">
|
|
12
|
+
<stop offset="0%" stop-color="#2a1828"/>
|
|
13
|
+
<stop offset="100%" stop-color="#1a0e1a"/>
|
|
14
|
+
</linearGradient>
|
|
15
|
+
<radialGradient id="belly" cx="42%" cy="38%" r="45%">
|
|
16
|
+
<stop offset="0%" stop-color="#f43f5e" stop-opacity=".08"/>
|
|
17
|
+
<stop offset="100%" stop-color="#f43f5e" stop-opacity="0"/>
|
|
18
|
+
</radialGradient>
|
|
19
|
+
</defs>
|
|
20
|
+
<!-- Coral gradient bg -->
|
|
21
|
+
<rect width="128" height="128" rx="28" fill="url(#bg)"/>
|
|
22
|
+
<rect width="128" height="128" rx="28" fill="url(#shine)"/>
|
|
23
|
+
<rect x="1" y="1" width="126" height="126" rx="27" fill="none" stroke="#fff" stroke-opacity=".1"/>
|
|
24
|
+
<!-- Dark shadow body - contrasts against coral -->
|
|
25
|
+
<ellipse cx="64" cy="72" rx="33" ry="31" fill="url(#body)"/>
|
|
26
|
+
<ellipse cx="64" cy="72" rx="33" ry="31" fill="url(#belly)"/>
|
|
27
|
+
<ellipse cx="64" cy="72" rx="32.5" ry="30.5" fill="none" stroke="#fff" stroke-opacity=".06"/>
|
|
28
|
+
<!-- Legs -->
|
|
29
|
+
<rect x="52" y="100" width="9" height="12" rx="4.5" fill="#1a0e1a"/>
|
|
30
|
+
<rect x="67" y="100" width="9" height="12" rx="4.5" fill="#1a0e1a"/>
|
|
31
|
+
<!-- Claws -->
|
|
32
|
+
<ellipse cx="25" cy="72" rx="9" ry="7" fill="#201420"/>
|
|
33
|
+
<path d="M20,66 L25,72 L30,66" stroke="#fb7185" stroke-width="1.2" fill="none" stroke-linecap="round" opacity=".3"/>
|
|
34
|
+
<ellipse cx="103" cy="72" rx="9" ry="7" fill="#201420"/>
|
|
35
|
+
<path d="M98,66 L103,72 L108,66" stroke="#fb7185" stroke-width="1.2" fill="none" stroke-linecap="round" opacity=".3"/>
|
|
36
|
+
<!-- Antennae -->
|
|
37
|
+
<line x1="50" y1="43" x2="42" y2="26" stroke="#1a0e1a" stroke-width="2.5" stroke-linecap="round"/>
|
|
38
|
+
<circle cx="41" cy="24" r="3.5" fill="#fda4af" opacity=".7"/>
|
|
39
|
+
<circle cx="41" cy="24" r="1.5" fill="#fff" opacity=".5"/>
|
|
40
|
+
<line x1="78" y1="43" x2="86" y2="26" stroke="#1a0e1a" stroke-width="2.5" stroke-linecap="round"/>
|
|
41
|
+
<circle cx="87" cy="24" r="3.5" fill="#fda4af" opacity=".7"/>
|
|
42
|
+
<circle cx="87" cy="24" r="1.5" fill="#fff" opacity=".5"/>
|
|
43
|
+
<!-- Eyes -->
|
|
44
|
+
<circle cx="52" cy="67" r="10.5" fill="#fff"/>
|
|
45
|
+
<circle cx="76" cy="67" r="10.5" fill="#fff"/>
|
|
46
|
+
<circle cx="54" cy="66" r="5.8" fill="#4c0519"/>
|
|
47
|
+
<circle cx="78" cy="66" r="5.8" fill="#4c0519"/>
|
|
48
|
+
<circle cx="56.5" cy="64" r="2.5" fill="#fff"/>
|
|
49
|
+
<circle cx="80.5" cy="64" r="2.5" fill="#fff"/>
|
|
50
|
+
<circle cx="52" cy="69" r="1.2" fill="#fff" opacity=".35"/>
|
|
51
|
+
<circle cx="76" cy="69" r="1.2" fill="#fff" opacity=".35"/>
|
|
52
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
|
|
4
|
+
<stop offset="0%" stop-color="#161220"/>
|
|
5
|
+
<stop offset="100%" stop-color="#0c0a12"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="body" x1="0" y1="0" x2="0" y2="1">
|
|
8
|
+
<stop offset="0%" stop-color="#fb7185"/>
|
|
9
|
+
<stop offset="100%" stop-color="#e11d48"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
<radialGradient id="belly" cx="42%" cy="38%" r="45%">
|
|
12
|
+
<stop offset="0%" stop-color="#fda4af" stop-opacity=".25"/>
|
|
13
|
+
<stop offset="100%" stop-color="#fda4af" stop-opacity="0"/>
|
|
14
|
+
</radialGradient>
|
|
15
|
+
</defs>
|
|
16
|
+
<rect width="128" height="128" rx="28" fill="url(#bg)"/>
|
|
17
|
+
<rect x=".5" y=".5" width="127" height="127" rx="27.5" fill="none" stroke="#f43f5e" stroke-opacity=".06"/>
|
|
18
|
+
<ellipse cx="64" cy="70" rx="33" ry="31" fill="url(#body)"/>
|
|
19
|
+
<ellipse cx="64" cy="70" rx="33" ry="31" fill="url(#belly)"/>
|
|
20
|
+
<rect x="52" y="98" width="9" height="13" rx="4.5" fill="#be123c"/>
|
|
21
|
+
<rect x="67" y="98" width="9" height="13" rx="4.5" fill="#be123c"/>
|
|
22
|
+
<ellipse cx="25" cy="70" rx="10" ry="8" fill="#be123c"/>
|
|
23
|
+
<path d="M19,63 L25,70 L31,63" stroke="#0c0a12" stroke-width="2" fill="none" stroke-linecap="round"/>
|
|
24
|
+
<ellipse cx="103" cy="70" rx="10" ry="8" fill="#be123c"/>
|
|
25
|
+
<path d="M97,63 L103,70 L109,63" stroke="#0c0a12" stroke-width="2" fill="none" stroke-linecap="round"/>
|
|
26
|
+
<line x1="50" y1="42" x2="41" y2="22" stroke="#be123c" stroke-width="2.5" stroke-linecap="round"/>
|
|
27
|
+
<circle cx="40" cy="20" r="4" fill="#fda4af"/>
|
|
28
|
+
<circle cx="40" cy="20" r="1.5" fill="#fff" opacity=".4"/>
|
|
29
|
+
<line x1="78" y1="42" x2="87" y2="22" stroke="#be123c" stroke-width="2.5" stroke-linecap="round"/>
|
|
30
|
+
<circle cx="88" cy="20" r="4" fill="#fda4af"/>
|
|
31
|
+
<circle cx="88" cy="20" r="1.5" fill="#fff" opacity=".4"/>
|
|
32
|
+
<circle cx="52" cy="65" r="10" fill="#fff"/>
|
|
33
|
+
<circle cx="76" cy="65" r="10" fill="#fff"/>
|
|
34
|
+
<circle cx="54" cy="64" r="5.5" fill="#4c0519"/>
|
|
35
|
+
<circle cx="78" cy="64" r="5.5" fill="#4c0519"/>
|
|
36
|
+
<circle cx="56" cy="62" r="2.2" fill="#fff"/>
|
|
37
|
+
<circle cx="80" cy="62" r="2.2" fill="#fff"/>
|
|
38
|
+
<circle cx="52" cy="67" r="1" fill="#fff" opacity=".35"/>
|
|
39
|
+
<circle cx="76" cy="67" r="1" fill="#fff" opacity=".35"/>
|
|
40
|
+
<path d="M57,78 Q64,84 73,77" stroke="#9f1239" stroke-width="2" fill="none" stroke-linecap="round"/>
|
|
41
|
+
</svg>
|
|
Binary file
|
|
Binary file
|