kennel 0.2.0 → 0.2.2
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/README.md +18 -5
- package/dist/cli/dispatch.js +9 -0
- package/dist/cli/src/automations/notifications.d.ts +40 -0
- package/dist/cli/src/automations/notifications.js +220 -0
- package/dist/cli/src/cli/dispatch.d.ts +1 -0
- package/dist/cli/src/cli/dispatch.js +125 -0
- package/dist/cli/src/cli/usage.d.ts +1 -0
- package/dist/cli/src/cli/usage.js +25 -0
- package/dist/cli/src/core/api-client.d.ts +13 -0
- package/dist/cli/src/core/api-client.js +1 -0
- package/dist/cli/src/core/command.d.ts +1 -0
- package/dist/cli/src/core/command.js +69 -0
- package/dist/cli/src/core/core-folders.d.ts +1 -0
- package/dist/cli/src/core/core-folders.js +42 -0
- package/dist/cli/src/core/init.d.ts +1 -0
- package/dist/cli/src/core/init.js +141 -0
- package/dist/cli/src/core/runtime.d.ts +14 -0
- package/dist/cli/src/core/runtime.js +1 -0
- package/dist/cli/src/deploy/cloudflare.d.ts +6 -0
- package/dist/cli/src/deploy/cloudflare.js +100 -0
- package/dist/cli/src/deploy/environment.d.ts +2 -0
- package/dist/cli/src/deploy/environment.js +47 -0
- package/dist/cli/src/deploy/smoke-tests.d.ts +4 -0
- package/dist/cli/src/deploy/smoke-tests.js +92 -0
- package/dist/cli/src/deploy/trigger-dev.d.ts +2 -0
- package/dist/cli/src/deploy/trigger-dev.js +255 -0
- package/dist/cli/src/deploy/vercel.d.ts +3 -0
- package/dist/cli/src/deploy/vercel.js +67 -0
- package/dist/cli/src/main.d.ts +1 -0
- package/dist/cli/src/main.js +9 -0
- package/dist/cli/src/mcp/agent-tools.d.ts +8 -0
- package/dist/cli/src/mcp/agent-tools.js +247 -0
- package/dist/cli/src/mcp/config.d.ts +25 -0
- package/dist/cli/src/mcp/config.js +185 -0
- package/dist/cli/src/mcp/function-source.d.ts +7 -0
- package/dist/cli/src/mcp/function-source.js +42 -0
- package/dist/cli/src/mcp/generate.d.ts +1 -0
- package/dist/cli/src/mcp/generate.js +47 -0
- package/dist/cli/src/mcp/install-page.d.ts +12 -0
- package/dist/cli/src/mcp/install-page.js +5 -0
- package/dist/cli/src/notifications/email-worker.d.ts +8 -0
- package/dist/cli/src/notifications/email-worker.js +137 -0
- package/dist/cli/src/package/mcp-data.d.ts +1 -0
- package/dist/cli/src/package/mcp-data.js +1 -0
- package/dist/cli/src/package/mcp-email-worker.d.ts +1 -0
- package/dist/cli/src/package/mcp-email-worker.js +1 -0
- package/dist/cli/src/package/mcp-http.d.ts +1 -0
- package/dist/cli/src/package/mcp-http.js +1 -0
- package/dist/cli/src/package/mcp-stdio.d.ts +1 -0
- package/dist/cli/src/package/mcp-stdio.js +1 -0
- package/dist/cli/src/package/mcp.d.ts +1 -0
- package/dist/cli/src/package/mcp.js +1 -0
- package/dist/cli/src/package/preview.d.ts +9 -0
- package/dist/cli/src/package/preview.js +1 -0
- package/dist/cli/src/plugins/external.d.ts +36 -0
- package/dist/cli/src/plugins/external.js +503 -0
- package/dist/cli/src/publish/cloudflare-init.d.ts +12 -0
- package/dist/cli/src/publish/cloudflare-init.js +101 -0
- package/dist/cli/src/publish/config.d.ts +28 -0
- package/dist/cli/src/publish/config.js +178 -0
- package/dist/cli/src/publish/options.d.ts +13 -0
- package/dist/cli/src/publish/options.js +78 -0
- package/dist/cli/src/publish/vercel-init.d.ts +9 -0
- package/dist/cli/src/publish/vercel-init.js +52 -0
- package/dist/cli/src/shared/json.d.ts +4 -0
- package/dist/cli/src/shared/json.js +56 -0
- package/dist/cli/src/shared/object.d.ts +2 -0
- package/dist/cli/src/shared/object.js +3 -0
- package/dist/cli/src/shared/package-manager.d.ts +11 -0
- package/dist/cli/src/shared/package-manager.js +39 -0
- package/dist/cli/src/shared/path.d.ts +4 -0
- package/dist/cli/src/shared/path.js +40 -0
- package/dist/cli/src/shared/process.d.ts +7 -0
- package/dist/cli/src/shared/process.js +12 -0
- package/dist/cli/src/shared/project-config.d.ts +2 -0
- package/dist/cli/src/shared/project-config.js +26 -0
- package/dist/cli/src/site/dev.d.ts +10 -0
- package/dist/cli/src/site/dev.js +126 -0
- package/dist/cli/src/site/extension.d.ts +8 -0
- package/dist/cli/src/site/extension.js +113 -0
- package/dist/cli/src/site/folder-icons.d.ts +46 -0
- package/dist/cli/src/site/folder-icons.js +86 -0
- package/dist/cli/src/site/hot-viewer.d.ts +2 -0
- package/dist/cli/src/site/hot-viewer.js +231 -0
- package/dist/cli/src/site/kinds.d.ts +1 -0
- package/dist/cli/src/site/kinds.js +1 -0
- package/dist/cli/src/site/mail.d.ts +1 -0
- package/dist/cli/src/site/mail.js +10 -0
- package/dist/cli/src/site/renderers.d.ts +61 -0
- package/dist/cli/src/site/renderers.js +219 -0
- package/dist/cli/src/site/server-plugins.d.ts +54 -0
- package/dist/cli/src/site/server-plugins.js +1 -0
- package/dist/cli/src/site/viewer.d.ts +36 -0
- package/dist/cli/src/site/viewer.js +352 -0
- package/dist/cli/src/site/vitepress.d.ts +1 -0
- package/dist/cli/src/site/vitepress.js +1 -0
- package/dist/cli/usage.js +1 -0
- package/dist/core/api-client.js +75 -44
- package/dist/core/command.js +6 -3
- package/dist/core/core-folders.js +38280 -33
- package/dist/core/init.js +59 -4
- package/dist/core/runtime.js +57163 -41853
- package/dist/package/preview.js +40589 -17894
- package/dist/plugins/external.d.ts +36 -0
- package/dist/plugins/external.js +503 -0
- package/dist/site/server-plugins.js +394 -59
- package/dist/site/viewer.js +18 -5
- package/kernel/apps/web/.env.example +11 -0
- package/kernel/apps/web/components.json +20 -0
- package/kernel/apps/web/eslint.config.mjs +60 -0
- package/kernel/apps/web/index.html +17 -0
- package/kernel/apps/web/package.json +79 -0
- package/kernel/apps/web/public/favicon.svg +6 -0
- package/kernel/apps/web/public/providers/claude.svg +1 -0
- package/kernel/apps/web/public/providers/codex.svg +1 -0
- package/kernel/apps/web/public/providers/cursor.svg +1 -0
- package/kernel/apps/web/public/providers/opencode.svg +1 -0
- package/kernel/apps/web/public/providers/pi.svg +1 -0
- package/kernel/apps/web/server/acp/index.ts +1 -0
- package/kernel/apps/web/server/acp/live-agent-connection.ts +1 -0
- package/kernel/apps/web/server/acp/process-manager.ts +1 -0
- package/kernel/apps/web/server/acp/registry.ts +1 -0
- package/kernel/apps/web/server/acp/sdk.ts +1 -0
- package/kernel/apps/web/server/acp/transport.ts +1 -0
- package/kernel/apps/web/server/acp/types.ts +1 -0
- package/kernel/apps/web/server/acp-live-plugin.ts +30 -0
- package/kernel/apps/web/server/api/document-edit.ts +1 -0
- package/kernel/apps/web/server/api/open-path.ts +1 -0
- package/kernel/apps/web/server/core-plugin.ts +49 -0
- package/kernel/apps/web/server/folder-favicon.ts +1 -0
- package/kernel/apps/web/server/folder-icons.ts +1 -0
- package/kernel/apps/web/server/folder-metadata-plugin.ts +31 -0
- package/kernel/apps/web/server/plugins.ts +1 -0
- package/kernel/apps/web/server/preview-kinds.ts +1 -0
- package/kernel/apps/web/src/ai-input.tsx +62 -0
- package/kernel/apps/web/src/annotations.tsx +430 -0
- package/kernel/apps/web/src/api/client.ts +3 -0
- package/kernel/apps/web/src/api/errors.ts +1 -0
- package/kernel/apps/web/src/api/events.ts +42 -0
- package/kernel/apps/web/src/app.css +332 -0
- package/kernel/apps/web/src/app.tsx +667 -0
- package/kernel/apps/web/src/ask-draft.ts +164 -0
- package/kernel/apps/web/src/ask-tray.tsx +256 -0
- package/kernel/apps/web/src/comment-editor.tsx +93 -0
- package/kernel/apps/web/src/comment-form.tsx +162 -0
- package/kernel/apps/web/src/copy-path.ts +18 -0
- package/kernel/apps/web/src/deferred-ask-tray.tsx +20 -0
- package/kernel/apps/web/src/document-url.ts +46 -0
- package/kernel/apps/web/src/documents-url.ts +23 -0
- package/kernel/apps/web/src/dropped-folder.ts +64 -0
- package/kernel/apps/web/src/external-plugins.ts +3 -0
- package/kernel/apps/web/src/file-viewer.tsx +171 -0
- package/kernel/apps/web/src/folder-filter-icons.tsx +39 -0
- package/kernel/apps/web/src/folder-metadata.ts +76 -0
- package/kernel/apps/web/src/folder-plugin-view.tsx +87 -0
- package/kernel/apps/web/src/folder-query-cache.ts +66 -0
- package/kernel/apps/web/src/host-adapters.ts +209 -0
- package/kernel/apps/web/src/host-bridge.ts +214 -0
- package/kernel/apps/web/src/lib/entity-folder.ts +2 -0
- package/kernel/apps/web/src/linked-session-header.tsx +43 -0
- package/kernel/apps/web/src/live-session-controls.tsx +326 -0
- package/kernel/apps/web/src/local-source.ts +32 -0
- package/kernel/apps/web/src/main.tsx +24 -0
- package/kernel/apps/web/src/markdown-page.tsx +444 -0
- package/kernel/apps/web/src/notes-page.tsx +103 -0
- package/kernel/apps/web/src/plugins.ts +53 -0
- package/kernel/apps/web/src/project-search-dialog.tsx +257 -0
- package/kernel/apps/web/src/project-search.ts +18 -0
- package/kernel/apps/web/src/query-client.ts +4 -0
- package/kernel/apps/web/src/rehype-source-lines.ts +22 -0
- package/kernel/apps/web/src/routes/document.tsx +1 -0
- package/kernel/apps/web/src/routes/entities.tsx +277 -0
- package/kernel/apps/web/src/routes/search.tsx +60 -0
- package/kernel/apps/web/src/selection-context.ts +68 -0
- package/kernel/apps/web/src/selection-input.tsx +58 -0
- package/kernel/apps/web/src/selection-popup.tsx +155 -0
- package/kernel/apps/web/src/session-transcript-page.tsx +152 -0
- package/kernel/apps/web/src/use-annotations.ts +162 -0
- package/kernel/apps/web/src/use-ask-ai.ts +26 -0
- package/kernel/apps/web/src/use-ask-draft.ts +27 -0
- package/kernel/apps/web/src/use-document.ts +37 -0
- package/kernel/apps/web/src/use-folder-notes.ts +49 -0
- package/kernel/apps/web/src/use-linked-session.ts +33 -0
- package/kernel/apps/web/src/view-context.tsx +69 -0
- package/kernel/apps/web/src/view-header.tsx +66 -0
- package/kernel/apps/web/src/viewer-capabilities.ts +33 -0
- package/kernel/apps/web/src/viewer-route.ts +1 -0
- package/kernel/apps/web/src/viewport-height.ts +33 -0
- package/kernel/apps/web/tsconfig.json +24 -0
- package/kernel/apps/web/vite.config.ts +252 -0
- package/kernel/packages/agents/eslint.config.js +10 -0
- package/kernel/packages/agents/package.json +75 -0
- package/kernel/packages/agents/src/agent-card.tsx +334 -0
- package/kernel/packages/agents/src/client.tsx +13 -0
- package/kernel/packages/agents/src/index.ts +18 -0
- package/kernel/packages/agents/src/manifest.ts +7 -0
- package/kernel/packages/agents/src/node.ts +447 -0
- package/kernel/packages/agents/src/profiles.ts +137 -0
- package/kernel/packages/agents/src/resolve.ts +69 -0
- package/kernel/packages/agents/src/server.ts +60 -0
- package/kernel/packages/agents/src/types.ts +82 -0
- package/kernel/packages/agents/src/viewer.tsx +370 -0
- package/kernel/packages/agents/test/profiles.test.mjs +88 -0
- package/kernel/packages/agents/test/resolve.test.mjs +729 -0
- package/kernel/packages/agents/tsconfig.json +17 -0
- package/kernel/packages/api/README.md +73 -0
- package/kernel/packages/api/openapi.json +3368 -0
- package/kernel/packages/api/package.json +41 -0
- package/kernel/packages/api/src/client/errors.ts +1 -0
- package/kernel/packages/api/src/client/index.ts +2 -0
- package/kernel/packages/api/src/contracts/schemas.ts +277 -0
- package/kernel/packages/api/src/contracts.ts +20 -0
- package/kernel/packages/api/src/index.ts +34 -0
- package/kernel/packages/api/src/server/acp/index.ts +35 -0
- package/kernel/packages/api/src/server/acp/live-agent-connection.ts +44 -0
- package/kernel/packages/api/src/server/acp/process-manager.ts +291 -0
- package/kernel/packages/api/src/server/acp/registry.ts +140 -0
- package/kernel/packages/api/src/server/acp/sdk.ts +15 -0
- package/kernel/packages/api/src/server/acp/transport.ts +115 -0
- package/kernel/packages/api/src/server/acp/types.ts +89 -0
- package/kernel/packages/api/src/server/acp-live-plugin.ts +423 -0
- package/kernel/packages/api/src/server/api/create-agent-file.ts +46 -0
- package/kernel/packages/api/src/server/api/document-edit.ts +125 -0
- package/kernel/packages/api/src/server/api/open-path.ts +40 -0
- package/kernel/packages/api/src/server/contracts.ts +85 -0
- package/kernel/packages/api/src/server/entity-folder.ts +353 -0
- package/kernel/packages/api/src/server/folder-favicon.ts +17 -0
- package/kernel/packages/api/src/server/folder-icons.ts +113 -0
- package/kernel/packages/api/src/server/folder-metadata-plugin.ts +1758 -0
- package/kernel/packages/api/src/server/host.ts +21 -0
- package/kernel/packages/api/src/server/index.ts +197 -0
- package/kernel/packages/api/src/server/linked-folder-discovery.ts +158 -0
- package/kernel/packages/api/src/server/plugins.ts +205 -0
- package/kernel/packages/api/src/server/project-discovery.ts +69 -0
- package/kernel/packages/api/src/server/watcher.ts +46 -0
- package/kernel/packages/api/src/shared/selection.ts +16 -0
- package/kernel/packages/api/src/shared/viewer-route.ts +200 -0
- package/kernel/packages/api/test/agents-loading.test.ts +94 -0
- package/kernel/packages/api/test/core.test.ts +364 -0
- package/kernel/packages/api/test/entity-folder.test.ts +131 -0
- package/kernel/packages/api/test/linked-folder-discovery.test.ts +78 -0
- package/kernel/packages/api/test/media-endpoint.test.ts +83 -0
- package/kernel/packages/api/test/partial-loading.test.ts +43 -0
- package/kernel/packages/api/test/project-discovery.test.ts +44 -0
- package/kernel/packages/api/tsconfig.json +11 -0
- package/kernel/packages/api-client/README.md +72 -0
- package/kernel/packages/api-client/package.json +26 -0
- package/kernel/packages/api-client/scripts/generate.ts +68 -0
- package/kernel/packages/api-client/src/errors.ts +59 -0
- package/kernel/packages/api-client/src/generated.d.ts +1248 -0
- package/kernel/packages/api-client/src/index.ts +206 -0
- package/kernel/packages/api-client/src/responses.ts +19 -0
- package/kernel/packages/api-client/test/client.test.ts +143 -0
- package/kernel/packages/api-client/tsconfig.json +12 -0
- package/kernel/packages/folder-plugin/eslint.config.js +10 -0
- package/kernel/packages/folder-plugin/package.json +50 -0
- package/kernel/packages/folder-plugin/src/client.ts +73 -0
- package/kernel/packages/folder-plugin/src/endpoint.ts +273 -0
- package/kernel/packages/folder-plugin/src/index.ts +15 -0
- package/kernel/packages/folder-plugin/src/server.ts +78 -0
- package/kernel/packages/folder-plugin/src/subpath.ts +34 -0
- package/kernel/packages/folder-plugin/src/types.ts +86 -0
- package/kernel/packages/folder-plugin/src/validation.ts +56 -0
- package/kernel/packages/folder-plugin/test/contract.test.mjs +133 -0
- package/kernel/packages/folder-plugin/tsconfig.json +17 -0
- package/kernel/packages/kinds/package.json +24 -0
- package/kernel/packages/kinds/src/kinds.ts +172 -0
- package/kernel/packages/markdown/README.md +40 -0
- package/kernel/packages/markdown/explorer.css +1 -0
- package/kernel/packages/markdown/package.json +30 -0
- package/kernel/packages/markdown/src/documents.ts +1 -0
- package/kernel/packages/markdown/src/explorer.ts +1 -0
- package/kernel/packages/markdown/src/index.ts +2 -0
- package/kernel/packages/markdown/src/metadata.ts +63 -0
- package/kernel/packages/markdown/src/node.ts +1 -0
- package/kernel/packages/markdown/styles.css +1 -0
- package/kernel/packages/notes/SKILL.md +19 -0
- package/kernel/packages/notes/eslint.config.js +10 -0
- package/kernel/packages/notes/package.json +72 -0
- package/kernel/packages/notes/src/client.tsx +12 -0
- package/kernel/packages/notes/src/data/ai-input.ts +58 -0
- package/kernel/packages/notes/src/data/api.ts +40 -0
- package/kernel/packages/notes/src/data/parse.ts +15 -0
- package/kernel/packages/notes/src/data/routing.ts +33 -0
- package/kernel/packages/notes/src/data/use-folder-notes.ts +49 -0
- package/kernel/packages/notes/src/index.ts +2 -0
- package/kernel/packages/notes/src/manifest.ts +6 -0
- package/kernel/packages/notes/src/pages/notes-page.tsx +79 -0
- package/kernel/packages/notes/src/pages/single-note-page.tsx +57 -0
- package/kernel/packages/notes/src/server.ts +88 -0
- package/kernel/packages/notes/src/ui/ai-composer-controls.tsx +70 -0
- package/kernel/packages/notes/src/ui/folder-notes-list.tsx +140 -0
- package/kernel/packages/notes/tsconfig.json +16 -0
- package/kernel/packages/schemas/ICON-POLICY.md +43 -0
- package/kernel/packages/schemas/SKILL.md +185 -0
- package/kernel/packages/schemas/eslint.config.js +10 -0
- package/kernel/packages/schemas/package.json +81 -0
- package/kernel/packages/schemas/src/client.tsx +137 -0
- package/kernel/packages/schemas/src/data/config-file.ts +37 -0
- package/kernel/packages/schemas/src/data/contract.ts +174 -0
- package/kernel/packages/schemas/src/data/favicon.ts +218 -0
- package/kernel/packages/schemas/src/data/fields.ts +96 -0
- package/kernel/packages/schemas/src/data/icon-image.ts +53 -0
- package/kernel/packages/schemas/src/data/icon.ts +97 -0
- package/kernel/packages/schemas/src/data/load.ts +161 -0
- package/kernel/packages/schemas/src/data/params.ts +103 -0
- package/kernel/packages/schemas/src/data/query.ts +33 -0
- package/kernel/packages/schemas/src/data/sort.ts +50 -0
- package/kernel/packages/schemas/src/data/workspace.ts +101 -0
- package/kernel/packages/schemas/src/index.ts +22 -0
- package/kernel/packages/schemas/src/manifest.ts +4 -0
- package/kernel/packages/schemas/src/node.ts +384 -0
- package/kernel/packages/schemas/src/pages/collection.tsx +252 -0
- package/kernel/packages/schemas/src/server.ts +208 -0
- package/kernel/packages/schemas/src/ui/schema-entity-list.tsx +124 -0
- package/kernel/packages/schemas/src/ui/schema-filters.tsx +186 -0
- package/kernel/packages/schemas/src/ui/schema-search.tsx +35 -0
- package/kernel/packages/schemas/src/ui/use-query-param-filter-setting.tsx +15 -0
- package/kernel/packages/schemas/test/contract.test.mjs +26 -0
- package/kernel/packages/schemas/test/fields.test.mjs +187 -0
- package/kernel/packages/schemas/test/load.test.mjs +12 -0
- package/kernel/packages/schemas/test/node.test.mjs +412 -0
- package/kernel/packages/schemas/test/query.test.mjs +134 -0
- package/kernel/packages/schemas/test/workspace.test.mjs +86 -0
- package/kernel/packages/schemas/tsconfig.json +17 -0
- package/kernel/packages/session-finding/package.json +33 -0
- package/kernel/packages/session-finding/src/index.ts +120 -0
- package/kernel/packages/session-finding/test/list-sessions.test.mjs +139 -0
- package/kernel/packages/session-finding/tsconfig.json +12 -0
- package/kernel/packages/ui/LICENSE +21 -0
- package/kernel/packages/ui/components.json +20 -0
- package/kernel/packages/ui/eslint.config.js +8 -0
- package/kernel/packages/ui/package.json +106 -0
- package/kernel/packages/ui/src/chat/file-link.ts +178 -0
- package/kernel/packages/ui/src/chat/index.ts +18 -0
- package/kernel/packages/ui/src/chat/transcript.tsx +348 -0
- package/kernel/packages/ui/src/chat/turns.ts +76 -0
- package/kernel/packages/ui/src/chat/types.ts +23 -0
- package/kernel/packages/ui/src/chat/use-overflowing.ts +56 -0
- package/kernel/packages/ui/src/components/accordion.tsx +74 -0
- package/kernel/packages/ui/src/components/alert-dialog.tsx +164 -0
- package/kernel/packages/ui/src/components/alert.tsx +68 -0
- package/kernel/packages/ui/src/components/app-breadcrumbs.tsx +170 -0
- package/kernel/packages/ui/src/components/app-header.tsx +125 -0
- package/kernel/packages/ui/src/components/app-options.tsx +87 -0
- package/kernel/packages/ui/src/components/app-view-header.tsx +34 -0
- package/kernel/packages/ui/src/components/aspect-ratio.tsx +11 -0
- package/kernel/packages/ui/src/components/avatar.tsx +53 -0
- package/kernel/packages/ui/src/components/badge.tsx +47 -0
- package/kernel/packages/ui/src/components/base-dialog.tsx +3 -0
- package/kernel/packages/ui/src/components/base-tabs.tsx +63 -0
- package/kernel/packages/ui/src/components/breadcrumb.tsx +110 -0
- package/kernel/packages/ui/src/components/button-group.tsx +86 -0
- package/kernel/packages/ui/src/components/button.tsx +65 -0
- package/kernel/packages/ui/src/components/calendar.tsx +240 -0
- package/kernel/packages/ui/src/components/card.tsx +95 -0
- package/kernel/packages/ui/src/components/carousel.tsx +240 -0
- package/kernel/packages/ui/src/components/chart.tsx +375 -0
- package/kernel/packages/ui/src/components/checkbox.tsx +39 -0
- package/kernel/packages/ui/src/components/collapsible.tsx +33 -0
- package/kernel/packages/ui/src/components/collection-icon.tsx +28 -0
- package/kernel/packages/ui/src/components/command.tsx +205 -0
- package/kernel/packages/ui/src/components/content-issues.tsx +63 -0
- package/kernel/packages/ui/src/components/context-menu.tsx +298 -0
- package/kernel/packages/ui/src/components/copy-context.tsx +134 -0
- package/kernel/packages/ui/src/components/dialog.tsx +157 -0
- package/kernel/packages/ui/src/components/drawer.tsx +162 -0
- package/kernel/packages/ui/src/components/dropdown-menu.tsx +303 -0
- package/kernel/packages/ui/src/components/empty.tsx +108 -0
- package/kernel/packages/ui/src/components/field.tsx +260 -0
- package/kernel/packages/ui/src/components/file-preview.tsx +152 -0
- package/kernel/packages/ui/src/components/file-renderer.tsx +466 -0
- package/kernel/packages/ui/src/components/filter-chip-panel.tsx +157 -0
- package/kernel/packages/ui/src/components/filter-select.tsx +127 -0
- package/kernel/packages/ui/src/components/folder-activity.tsx +646 -0
- package/kernel/packages/ui/src/components/folder-file-list.tsx +58 -0
- package/kernel/packages/ui/src/components/folder-filter-bar.tsx +191 -0
- package/kernel/packages/ui/src/components/folder-image.tsx +18 -0
- package/kernel/packages/ui/src/components/folder-landing.tsx +70 -0
- package/kernel/packages/ui/src/components/folder-list.tsx +140 -0
- package/kernel/packages/ui/src/components/folder-metadata.tsx +107 -0
- package/kernel/packages/ui/src/components/folder-mobile-bar.tsx +60 -0
- package/kernel/packages/ui/src/components/folder-project-list.tsx +133 -0
- package/kernel/packages/ui/src/components/folder-session-list.tsx +113 -0
- package/kernel/packages/ui/src/components/folder-session-page.tsx +126 -0
- package/kernel/packages/ui/src/components/folder-sidebar.tsx +52 -0
- package/kernel/packages/ui/src/components/folder-skill-list.tsx +62 -0
- package/kernel/packages/ui/src/components/folder-tabs.tsx +156 -0
- package/kernel/packages/ui/src/components/form.tsx +167 -0
- package/kernel/packages/ui/src/components/hover-card.tsx +52 -0
- package/kernel/packages/ui/src/components/icons.tsx +34 -0
- package/kernel/packages/ui/src/components/input-group.tsx +184 -0
- package/kernel/packages/ui/src/components/input-otp.tsx +90 -0
- package/kernel/packages/ui/src/components/input.tsx +29 -0
- package/kernel/packages/ui/src/components/item.tsx +195 -0
- package/kernel/packages/ui/src/components/kbd.tsx +32 -0
- package/kernel/packages/ui/src/components/label.tsx +27 -0
- package/kernel/packages/ui/src/components/link.tsx +45 -0
- package/kernel/packages/ui/src/components/live-tool-call.tsx +193 -0
- package/kernel/packages/ui/src/components/menubar.tsx +323 -0
- package/kernel/packages/ui/src/components/navigation-menu.tsx +210 -0
- package/kernel/packages/ui/src/components/note-card.tsx +149 -0
- package/kernel/packages/ui/src/components/pagination.tsx +128 -0
- package/kernel/packages/ui/src/components/popover.tsx +56 -0
- package/kernel/packages/ui/src/components/progress.tsx +31 -0
- package/kernel/packages/ui/src/components/radio-group.tsx +54 -0
- package/kernel/packages/ui/src/components/scroll-area.tsx +61 -0
- package/kernel/packages/ui/src/components/select.tsx +219 -0
- package/kernel/packages/ui/src/components/separator.tsx +30 -0
- package/kernel/packages/ui/src/components/session-icon.tsx +124 -0
- package/kernel/packages/ui/src/components/sheet.tsx +157 -0
- package/kernel/packages/ui/src/components/sidebar.tsx +789 -0
- package/kernel/packages/ui/src/components/skeleton.tsx +13 -0
- package/kernel/packages/ui/src/components/slider.tsx +73 -0
- package/kernel/packages/ui/src/components/sonner.tsx +41 -0
- package/kernel/packages/ui/src/components/spinner.tsx +16 -0
- package/kernel/packages/ui/src/components/switch.tsx +40 -0
- package/kernel/packages/ui/src/components/table.tsx +120 -0
- package/kernel/packages/ui/src/components/tabs.tsx +78 -0
- package/kernel/packages/ui/src/components/textarea.tsx +25 -0
- package/kernel/packages/ui/src/components/toggle-group.tsx +87 -0
- package/kernel/packages/ui/src/components/toggle.tsx +48 -0
- package/kernel/packages/ui/src/components/tooltip.tsx +71 -0
- package/kernel/packages/ui/src/components/viewer-options.tsx +166 -0
- package/kernel/packages/ui/src/hooks/use-folder-filter.ts +103 -0
- package/kernel/packages/ui/src/hooks/use-mobile.ts +19 -0
- package/kernel/packages/ui/src/index.ts +13 -0
- package/kernel/packages/ui/src/lib/document-extensions.ts +83 -0
- package/kernel/packages/ui/src/lib/folder-activity.ts +143 -0
- package/kernel/packages/ui/src/lib/folder-filter.ts +284 -0
- package/kernel/packages/ui/src/lib/live-tool-call.tsx +109 -0
- package/kernel/packages/ui/src/lib/media-urls.ts +176 -0
- package/kernel/packages/ui/src/lib/obsidian-links.ts +120 -0
- package/kernel/packages/ui/src/lib/source-components.tsx +65 -0
- package/kernel/packages/ui/src/lib/utils.tsx +7 -0
- package/kernel/packages/ui/src/pages/entity-detail-page.tsx +82 -0
- package/kernel/packages/ui/src/pages/entity-list-page.tsx +50 -0
- package/kernel/packages/ui/src/pages/entity-page.tsx +69 -0
- package/kernel/packages/ui/src/styles/folder-activity.css +2151 -0
- package/kernel/packages/ui/test/copy-context.test.mjs +48 -0
- package/kernel/packages/ui/test/folder-filter.test.mjs +484 -0
- package/kernel/packages/ui/tsconfig.json +15 -0
- package/kernel/plugins/calendar/SKILL.md +173 -0
- package/kernel/plugins/calendar/eslint.config.js +10 -0
- package/kernel/plugins/calendar/package.json +73 -0
- package/kernel/plugins/calendar/schema.json +137 -0
- package/kernel/plugins/calendar/src/calendar.tsx +328 -0
- package/kernel/plugins/calendar/src/client.tsx +139 -0
- package/kernel/plugins/calendar/src/context.ts +48 -0
- package/kernel/plugins/calendar/src/copy-button.tsx +66 -0
- package/kernel/plugins/calendar/src/event-dialog.tsx +270 -0
- package/kernel/plugins/calendar/src/index.ts +4 -0
- package/kernel/plugins/calendar/src/manifest.ts +7 -0
- package/kernel/plugins/calendar/src/parse.ts +610 -0
- package/kernel/plugins/calendar/src/server.ts +160 -0
- package/kernel/plugins/calendar/src/utils.ts +80 -0
- package/kernel/plugins/calendar/src/views.tsx +418 -0
- package/kernel/plugins/calendar/test/context.test.mjs +60 -0
- package/kernel/plugins/calendar/test/package.test.mjs +43 -0
- package/kernel/plugins/calendar/test/parse.test.mjs +392 -0
- package/kernel/plugins/calendar/test/server.test.mjs +126 -0
- package/kernel/plugins/calendar/tsconfig.json +17 -0
- package/kernel/plugins/mail/SKILL.md +97 -0
- package/kernel/plugins/mail/eslint.config.js +10 -0
- package/kernel/plugins/mail/package.json +79 -0
- package/kernel/plugins/mail/src/api.ts +359 -0
- package/kernel/plugins/mail/src/bun-ffi.d.ts +14 -0
- package/kernel/plugins/mail/src/client.tsx +14 -0
- package/kernel/plugins/mail/src/flock.ts +137 -0
- package/kernel/plugins/mail/src/folders.ts +37 -0
- package/kernel/plugins/mail/src/history.ts +485 -0
- package/kernel/plugins/mail/src/index.ts +3 -0
- package/kernel/plugins/mail/src/mail-card.tsx +123 -0
- package/kernel/plugins/mail/src/mail-conversation.tsx +153 -0
- package/kernel/plugins/mail/src/mail-detail-page.tsx +467 -0
- package/kernel/plugins/mail/src/mail-hooks.ts +252 -0
- package/kernel/plugins/mail/src/mail-page.tsx +109 -0
- package/kernel/plugins/mail/src/mail-request.ts +78 -0
- package/kernel/plugins/mail/src/mail-send-box.tsx +175 -0
- package/kernel/plugins/mail/src/mailos.ts +723 -0
- package/kernel/plugins/mail/src/manifest.ts +7 -0
- package/kernel/plugins/mail/src/node.ts +171 -0
- package/kernel/plugins/mail/src/parse.ts +139 -0
- package/kernel/plugins/mail/src/server.ts +125 -0
- package/kernel/plugins/mail/src/types.ts +10 -0
- package/kernel/plugins/mail/src/viewer.tsx +147 -0
- package/kernel/plugins/mail/test/flock.test.mjs +156 -0
- package/kernel/plugins/mail/test/folders.test.mjs +138 -0
- package/kernel/plugins/mail/test/history.test.mjs +460 -0
- package/kernel/plugins/mail/test/mailos.test.mjs +752 -0
- package/kernel/plugins/mail/test/node.test.mjs +207 -0
- package/kernel/plugins/mail/test/package.test.mjs +54 -0
- package/kernel/plugins/mail/test/parse.test.mjs +32 -0
- package/kernel/plugins/mail/test/server.test.mjs +116 -0
- package/kernel/plugins/mail/test/viewer.test.mjs +192 -0
- package/kernel/plugins/mail/tsconfig.json +17 -0
- package/kernel/plugins/projects/SKILL.md +73 -0
- package/kernel/plugins/projects/eslint.config.js +10 -0
- package/kernel/plugins/projects/package.json +70 -0
- package/kernel/plugins/projects/src/client.tsx +17 -0
- package/kernel/plugins/projects/src/data/model.ts +129 -0
- package/kernel/plugins/projects/src/index.ts +17 -0
- package/kernel/plugins/projects/src/manifest.ts +7 -0
- package/kernel/plugins/projects/src/project-context.ts +41 -0
- package/kernel/plugins/projects/src/server.ts +276 -0
- package/kernel/plugins/projects/src/ui/project-card.tsx +61 -0
- package/kernel/plugins/projects/src/ui/projects-page.tsx +102 -0
- package/kernel/plugins/projects/test/package.test.mjs +51 -0
- package/kernel/plugins/projects/tsconfig.json +17 -0
- package/kernel/plugins/tasks/SKILL.md +341 -0
- package/kernel/plugins/tasks/eslint.config.js +10 -0
- package/kernel/plugins/tasks/package.json +74 -0
- package/kernel/plugins/tasks/schema.json +939 -0
- package/kernel/plugins/tasks/src/api.ts +212 -0
- package/kernel/plugins/tasks/src/client.tsx +23 -0
- package/kernel/plugins/tasks/src/data/parse.ts +544 -0
- package/kernel/plugins/tasks/src/data/task-id.ts +56 -0
- package/kernel/plugins/tasks/src/data/todo-model.ts +795 -0
- package/kernel/plugins/tasks/src/index.ts +34 -0
- package/kernel/plugins/tasks/src/manifest.ts +7 -0
- package/kernel/plugins/tasks/src/pages/task-detail.tsx +48 -0
- package/kernel/plugins/tasks/src/pages/task-list.tsx +88 -0
- package/kernel/plugins/tasks/src/server.ts +447 -0
- package/kernel/plugins/tasks/src/styles.css +9 -0
- package/kernel/plugins/tasks/src/ui/compact-todo-list.tsx +372 -0
- package/kernel/plugins/tasks/src/ui/error-details.tsx +78 -0
- package/kernel/plugins/tasks/src/ui/task-page.tsx +392 -0
- package/kernel/plugins/tasks/src/ui/todo-agent-filter.tsx +36 -0
- package/kernel/plugins/tasks/src/ui/todo-filter-bar.tsx +66 -0
- package/kernel/plugins/tasks/src/ui/todo-item.tsx +494 -0
- package/kernel/plugins/tasks/src/ui/todo-status-filter.tsx +60 -0
- package/kernel/plugins/tasks/src/ui/todo-tag-filter.tsx +48 -0
- package/kernel/plugins/tasks/src/ui/todo-warnings.tsx +106 -0
- package/kernel/plugins/tasks/test/api.test.mjs +99 -0
- package/kernel/plugins/tasks/test/folder-sources.test.mjs +46 -0
- package/kernel/plugins/tasks/test/package.test.mjs +54 -0
- package/kernel/plugins/tasks/test/parse.test.mjs +225 -0
- package/kernel/plugins/tasks/test/server.test.mjs +386 -0
- package/kernel/plugins/tasks/tsconfig.json +17 -0
- package/node_modules/@agentclientprotocol/sdk/LICENSE +191 -0
- package/node_modules/@agentclientprotocol/sdk/README.md +70 -0
- package/node_modules/@agentclientprotocol/sdk/dist/acp.d.ts +1835 -0
- package/node_modules/@agentclientprotocol/sdk/dist/acp.js +1885 -0
- package/node_modules/@agentclientprotocol/sdk/dist/acp.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/acp.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/acp.test.js +5036 -0
- package/node_modules/@agentclientprotocol/sdk/dist/acp.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/connection.d.ts +82 -0
- package/node_modules/@agentclientprotocol/sdk/dist/connection.js +428 -0
- package/node_modules/@agentclientprotocol/sdk/dist/connection.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/connection.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/connection.test.js +470 -0
- package/node_modules/@agentclientprotocol/sdk/dist/connection.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/cookie-store.d.ts +26 -0
- package/node_modules/@agentclientprotocol/sdk/dist/cookie-store.js +96 -0
- package/node_modules/@agentclientprotocol/sdk/dist/cookie-store.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/cookie-store.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/cookie-store.test.js +77 -0
- package/node_modules/@agentclientprotocol/sdk/dist/cookie-store.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/agent.d.ts +2 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/agent.js +232 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/agent.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/client.d.ts +2 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/client.js +132 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/client.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/dual-version-agent.d.ts +9 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/dual-version-agent.js +221 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/dual-version-agent.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/http-client.d.ts +2 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/http-client.js +86 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/http-client.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/http-server.d.ts +2 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/http-server.js +112 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/http-server.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/ws-client.d.ts +2 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/ws-client.js +88 -0
- package/node_modules/@agentclientprotocol/sdk/dist/examples/ws-client.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/http-stream.d.ts +33 -0
- package/node_modules/@agentclientprotocol/sdk/dist/http-stream.js +435 -0
- package/node_modules/@agentclientprotocol/sdk/dist/http-stream.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/http-stream.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/http-stream.test.js +1380 -0
- package/node_modules/@agentclientprotocol/sdk/dist/http-stream.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/jsonrpc.d.ts +603 -0
- package/node_modules/@agentclientprotocol/sdk/dist/jsonrpc.js +1064 -0
- package/node_modules/@agentclientprotocol/sdk/dist/jsonrpc.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/jsonrpc.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/jsonrpc.test.js +851 -0
- package/node_modules/@agentclientprotocol/sdk/dist/jsonrpc.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/line-buffer.d.ts +22 -0
- package/node_modules/@agentclientprotocol/sdk/dist/line-buffer.js +64 -0
- package/node_modules/@agentclientprotocol/sdk/dist/line-buffer.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/line-buffer.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/line-buffer.test.js +45 -0
- package/node_modules/@agentclientprotocol/sdk/dist/line-buffer.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/node-adapter.d.ts +17 -0
- package/node_modules/@agentclientprotocol/sdk/dist/node-adapter.js +426 -0
- package/node_modules/@agentclientprotocol/sdk/dist/node-adapter.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/node-adapter.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/node-adapter.test.js +499 -0
- package/node_modules/@agentclientprotocol/sdk/dist/node-adapter.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.d.ts +37 -0
- package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.js +474 -0
- package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.test.js +535 -0
- package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/protocol.d.ts +11 -0
- package/node_modules/@agentclientprotocol/sdk/dist/protocol.js +57 -0
- package/node_modules/@agentclientprotocol/sdk/dist/protocol.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/protocol.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/protocol.test.js +73 -0
- package/node_modules/@agentclientprotocol/sdk/dist/protocol.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema/guards.gen.d.ts +199 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema/guards.gen.js +211 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema/guards.gen.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema/index.d.ts +51 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema/index.js +52 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema/index.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema/types.gen.d.ts +6118 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema/types.gen.js +3 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema/types.gen.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema/zod.gen.d.ts +14160 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema/zod.gen.js +3066 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema/zod.gen.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema-deserialize.d.ts +30 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema-deserialize.js +98 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema-deserialize.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema-deserialize.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema-deserialize.test.js +93 -0
- package/node_modules/@agentclientprotocol/sdk/dist/schema-deserialize.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-permission.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-permission.test.js +261 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-permission.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-session-sse.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-session-sse.test.js +490 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-session-sse.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-sse.d.ts +2 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-sse.js +104 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-sse.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-sse.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-sse.test.js +52 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-sse.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-websocket-upgrade.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-websocket-upgrade.test.js +946 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server-websocket-upgrade.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server.d.ts +81 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server.js +380 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server.test.js +1082 -0
- package/node_modules/@agentclientprotocol/sdk/dist/server.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/sse.d.ts +4 -0
- package/node_modules/@agentclientprotocol/sdk/dist/sse.js +91 -0
- package/node_modules/@agentclientprotocol/sdk/dist/sse.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/sse.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/sse.test.js +126 -0
- package/node_modules/@agentclientprotocol/sdk/dist/sse.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/stream.d.ts +35 -0
- package/node_modules/@agentclientprotocol/sdk/dist/stream.js +106 -0
- package/node_modules/@agentclientprotocol/sdk/dist/stream.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/stream.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/stream.test.js +206 -0
- package/node_modules/@agentclientprotocol/sdk/dist/stream.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/test-support/streams.d.ts +8 -0
- package/node_modules/@agentclientprotocol/sdk/dist/test-support/streams.js +51 -0
- package/node_modules/@agentclientprotocol/sdk/dist/test-support/streams.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/test-support/test-agent.d.ts +24 -0
- package/node_modules/@agentclientprotocol/sdk/dist/test-support/test-agent.js +163 -0
- package/node_modules/@agentclientprotocol/sdk/dist/test-support/test-agent.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/test-support/test-http-server.d.ts +9 -0
- package/node_modules/@agentclientprotocol/sdk/dist/test-support/test-http-server.js +74 -0
- package/node_modules/@agentclientprotocol/sdk/dist/test-support/test-http-server.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.d.ts +806 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.js +1183 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.test.js +512 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/guards.gen.d.ts +954 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/guards.gen.js +1035 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/guards.gen.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/index.d.ts +42 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/index.js +43 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/index.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/types.gen.d.ts +6146 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/types.gen.js +3 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/types.gen.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/zod.gen.d.ts +30552 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/zod.gen.js +3204 -0
- package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/zod.gen.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-server.d.ts +14 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-server.js +358 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-server.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-stream.d.ts +54 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-stream.js +246 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-stream.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-stream.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-stream.test.js +833 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-stream.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-utils.d.ts +13 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-utils.js +78 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-utils.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-utils.test.d.ts +1 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-utils.test.js +42 -0
- package/node_modules/@agentclientprotocol/sdk/dist/ws-utils.test.js.map +1 -0
- package/node_modules/@agentclientprotocol/sdk/package.json +105 -0
- package/node_modules/@agentclientprotocol/sdk/schema/schema.json +8819 -0
- package/node_modules/@agentclientprotocol/sdk/schema/v2/schema.unstable.json +10098 -0
- package/package.json +52 -6
- package/web/assets/{abnfDiagram-VRR7QNED-Nfq-O04D.js → abnfDiagram-VRR7QNED-Bgfb1nEB.js} +1 -1
- package/web/assets/app-DoGr2Zi7.js +2 -0
- package/web/assets/app-options-D-RJiQ-X.js +25 -0
- package/web/assets/app-view-header-BLvLq02T.js +1 -0
- package/web/assets/arc-Dk_KI36B.js +1 -0
- package/web/assets/{architectureDiagram-ZJ3FMSHR-qhRwPNcQ.js → architectureDiagram-ZJ3FMSHR-NR_KhRCf.js} +1 -1
- package/web/assets/ask-tray-TzeTcO6-.js +14 -0
- package/web/assets/{blockDiagram-677ZJIJ3-C56P3bGu.js → blockDiagram-677ZJIJ3-CkLkwx9C.js} +1 -1
- package/web/assets/button-C6arH7zt.js +1 -0
- package/web/assets/{c4Diagram-LMCZKHZV-Ey1M72zD.js → c4Diagram-LMCZKHZV-CFCUH8e_.js} +1 -1
- package/web/assets/channel-uMEjV8qc.js +1 -0
- package/web/assets/{chunk-2Q5K7J3B-a6isk9VU.js → chunk-2Q5K7J3B-B_BPLWsW.js} +1 -1
- package/web/assets/{chunk-32BRIVSS-uy4kdSLL.js → chunk-32BRIVSS-B1VB1hOy.js} +1 -1
- package/web/assets/{chunk-5VM5RSS4-oj2sBFd7.js → chunk-5VM5RSS4-KFcYr8Co.js} +1 -1
- package/web/assets/{chunk-EX3LRPZG-Bzl1ukAi.js → chunk-EX3LRPZG-CpBX3kuK.js} +3 -3
- package/web/assets/{chunk-JWPE2WC7-sUph7I_t.js → chunk-JWPE2WC7-BPSl40wG.js} +1 -1
- package/web/assets/{chunk-MOJQB5TN-C0ERSuVK.js → chunk-MOJQB5TN-D2RcYmoU.js} +1 -1
- package/web/assets/{chunk-RYQCIY6F-Dyw1Hfwp.js → chunk-RYQCIY6F-m7Gyn-t3.js} +1 -1
- package/web/assets/{chunk-V7JOEXUC-DnSz22rb.js → chunk-V7JOEXUC-TDvdopxS.js} +1 -1
- package/web/assets/{chunk-VR4S4FIN-Bp2SNel7.js → chunk-VR4S4FIN-DZTsG51a.js} +1 -1
- package/web/assets/{chunk-XXDRQBXY-Dqtar746.js → chunk-XXDRQBXY-Dp0--RE2.js} +1 -1
- package/web/assets/classDiagram-OUVF2IWQ-fbZocVor.js +1 -0
- package/web/assets/classDiagram-v2-EOCWNBFH-fbZocVor.js +1 -0
- package/web/assets/client-C6Nxdfif.js +2 -0
- package/web/assets/client-CXYfBko5.js +17 -0
- package/web/assets/client-CoKtOq-X.js +7 -0
- package/web/assets/client-DyRQz5RU.js +53 -0
- package/web/assets/client-OY6HUzuD.js +98 -0
- package/web/assets/client-YOYWZIFi.js +34 -0
- package/web/assets/client-j2kQmxsO.js +22 -0
- package/web/assets/command-BugZBGXE.js +38 -0
- package/web/assets/copy-context-C0Uqsp-3.js +1 -0
- package/web/assets/{cose-bilkent-JH36ORCC-Dx1VqMjj.js → cose-bilkent-JH36ORCC-CPu3PI8h.js} +1 -1
- package/web/assets/{cynefin-VYW2F7L2-SjhCWmIV.js → cynefin-VYW2F7L2-DWxftYAm.js} +1 -1
- package/web/assets/{cynefinDiagram-TSTJHNR4-Dvqz2594.js → cynefinDiagram-TSTJHNR4-DsmN2V-p.js} +1 -1
- package/web/assets/{dagre-VKFMJZFB-Ju2m2qXt.js → dagre-VKFMJZFB-COEbApyY.js} +1 -1
- package/web/assets/{diagram-FQU43EPY-DsHKTt0k.js → diagram-FQU43EPY-0O9WGWKB.js} +1 -1
- package/web/assets/{diagram-G47NLZAW-DWHAcLkJ.js → diagram-G47NLZAW-CutEdMVh.js} +1 -1
- package/web/assets/{diagram-NH7WQ7WH-uUMz46ZD.js → diagram-NH7WQ7WH-C9KZc3B2.js} +1 -1
- package/web/assets/{diagram-OA4YK3LP-BRjVzjdp.js → diagram-OA4YK3LP-D8kkPXbY.js} +1 -1
- package/web/assets/{diagram-WEI45ONY-Cb-FhBpQ.js → diagram-WEI45ONY-_YqiTaGP.js} +1 -1
- package/web/assets/document-Dgt5eZFj.js +19 -0
- package/web/assets/{ebnfDiagram-CCIWWBDH-IhhxX3IB.js → ebnfDiagram-CCIWWBDH-JO-zQh6g.js} +1 -1
- package/web/assets/{entities-DUnx74kH.js → entities-C3wz7FCx.js} +12 -12
- package/web/assets/{erDiagram-Q63AITRT-D1frgeWf.js → erDiagram-Q63AITRT-9UjQwJ4P.js} +1 -1
- package/web/assets/file-viewer-DZJ8nYnl.js +1 -0
- package/web/assets/{flowDiagram-23GEKE2U-BiPPM-FY.js → flowDiagram-23GEKE2U-Ca08tnYM.js} +5 -5
- package/web/assets/folder-image-BfGgxo7i.js +1 -0
- package/web/assets/folder-landing-qUKBCnG-.js +54 -0
- package/web/assets/folder-list-BfFjv7rR.js +1 -0
- package/web/assets/folder-metadata-DCw8xzHk.js +2 -0
- package/web/assets/folder-mobile-bar-Ubz4babf.js +1 -0
- package/web/assets/folder-plugin-view-DsWR1zmQ.js +6 -0
- package/web/assets/{ganttDiagram-NO4QXBWP-CmEOlHD7.js → ganttDiagram-NO4QXBWP-KnHzX5W3.js} +1 -1
- package/web/assets/{gitGraphDiagram-IHSO6WYX-tTjcpZpU.js → gitGraphDiagram-IHSO6WYX-Cm8woNtK.js} +1 -1
- package/web/assets/index-BaRnbYRw.js +1 -0
- package/web/assets/index-BexmLxIP.css +1 -0
- package/web/assets/index-Bp9DidgD.js +1 -0
- package/web/assets/{index-eL1k96k8.js → index-CCXE8zc9.js} +1 -1
- package/web/assets/index-CNyy98F8.js +2 -0
- package/web/assets/{index-DmrKjrlM.js → index-CXhBn-ar.js} +1 -1
- package/web/assets/index-DDirZMgx.js +1 -0
- package/web/assets/{infoDiagram-FWYZ7A6U-Ok2sdbc1.js → infoDiagram-FWYZ7A6U-yyqmUtIb.js} +1 -1
- package/web/assets/{ishikawaDiagram-FXEZZL3T-kPnM5psX.js → ishikawaDiagram-FXEZZL3T-BfvR_Zy4.js} +4 -4
- package/web/assets/{journeyDiagram-5HDEW3XC-BkoT0-45.js → journeyDiagram-5HDEW3XC-BKuw06HM.js} +1 -1
- package/web/assets/{kanban-definition-HUTT4EX6-xnm_eFoU.js → kanban-definition-HUTT4EX6-n0010rmQ.js} +8 -8
- package/web/assets/{linear-CLZpgLH-.js → linear-C0d0lT8O.js} +1 -1
- package/web/assets/linked-session-header-BkEweU0Z.js +3 -0
- package/web/assets/{markdown-njUwQKsR.js → markdown-Bw9RgUGR.js} +9 -9
- package/web/assets/{mermaid.core-Bvxj3RoN.js → mermaid.core-BDVbShyO.js} +6 -6
- package/web/assets/metadata-KV0dpp4G.js +1 -0
- package/web/assets/{mindmap-definition-LN4V7U3C-42Uoox79.js → mindmap-definition-LN4V7U3C--_0ks3GF.js} +1 -1
- package/web/assets/note-card-DBfX6gW1.js +6 -0
- package/web/assets/{pegDiagram-2B236MQR-B-GZCw3w.js → pegDiagram-2B236MQR-CBoNIpKR.js} +1 -1
- package/web/assets/{pieDiagram-ENE6RG2P-DRmmssIB.js → pieDiagram-ENE6RG2P-MA5tkYh5.js} +3 -3
- package/web/assets/popover-DBD7FF-W.js +9 -0
- package/web/assets/{project-search-dialog-B730oZ1S.js → project-search-dialog-DM1IkSZu.js} +6 -6
- package/web/assets/{quadrantDiagram-ABIIQ3AL-BfhVQ7V9.js → quadrantDiagram-ABIIQ3AL-CWT1ryqF.js} +1 -1
- package/web/assets/{railroadDiagram-RFXS5EU6-DxKx7XRp.js → railroadDiagram-RFXS5EU6-ZiLB5FGi.js} +1 -1
- package/web/assets/{react-DZzLHL-l.js → react-B9jn2M18.js} +2 -2
- package/web/assets/{requirementDiagram-TGXJPOKE-NUzj9fw1.js → requirementDiagram-TGXJPOKE-CQq9uneq.js} +1 -1
- package/web/assets/{sankeyDiagram-HTMAVEWB-Cy9OMnl-.js → sankeyDiagram-HTMAVEWB-qDG-0JqI.js} +1 -1
- package/web/assets/search-DNrQA5fF.js +2 -0
- package/web/assets/select-D8cqNgcp.js +30 -0
- package/web/assets/selection-popup-DmtTeRs2.js +7 -0
- package/web/assets/{sequenceDiagram-DBY2YBRQ-CBNE9mzn.js → sequenceDiagram-DBY2YBRQ-CiApurLO.js} +1 -1
- package/web/assets/{sizeCapture-X5ZJPWSS-S4HhfX0n.js → sizeCapture-X5ZJPWSS-DZSR5QXm.js} +1 -1
- package/web/assets/stateDiagram-2N3HPSRC-CjJJR9_z.js +1 -0
- package/web/assets/stateDiagram-v2-6OUMAXLB-BpeGSCu9.js +1 -0
- package/web/assets/{swimlanes-5IMT3BWC-DJ2aLWal.js → swimlanes-5IMT3BWC-CKmo1sg6.js} +2 -2
- package/web/assets/swimlanesDiagram-G3AALYLV-D9RjLKb9.js +8 -0
- package/web/assets/tanstack-YzX_Mi37.js +3 -0
- package/web/assets/{timeline-definition-FHXFAJF6-vFDUVPCX.js → timeline-definition-FHXFAJF6-D-NMwS3y.js} +1 -1
- package/web/assets/{use-folder-filter-BbTUlXgG.js → use-folder-filter-LQyXns5Q.js} +1 -1
- package/web/assets/{utils-CwHGE3BB.js → utils-DCaHk0Gm.js} +1 -1
- package/web/assets/{vennDiagram-L72KCM5P-AsnhK2zW.js → vennDiagram-L72KCM5P-CfL6LBWw.js} +1 -1
- package/web/assets/view-context-gyDl_p2V.js +229 -0
- package/web/assets/viewer-capabilities-Bpp8Uvcg.js +1 -0
- package/web/assets/{wardleyDiagram-EHGQE667-Cj1wFbNV.js → wardleyDiagram-EHGQE667-DgldMxaj.js} +1 -1
- package/web/assets/{xychartDiagram-FW5EYKEG-Bbvnutsm.js → xychartDiagram-FW5EYKEG-CIoAIFX8.js} +1 -1
- package/web/favicon.svg +6 -0
- package/web/index.html +5 -4
- package/web/assets/app-CPSmsokP.js +0 -2
- package/web/assets/app-options-XEWvevsz.js +0 -25
- package/web/assets/app-view-header-BKZ90ToF.js +0 -1
- package/web/assets/arc-DbpbZvCt.js +0 -1
- package/web/assets/arrow-left-CFeHb-Z1.js +0 -1
- package/web/assets/ask-tray-D2YHtbPj.js +0 -14
- package/web/assets/button-BJ7z-ZA7.js +0 -1
- package/web/assets/calendar-days-DWh2XMO2.js +0 -1
- package/web/assets/channel-dSRp_qTo.js +0 -1
- package/web/assets/chevron-down-C5oRtqbX.js +0 -1
- package/web/assets/chevron-right-CsPtvh8C.js +0 -1
- package/web/assets/chevron-up-DjpU6Pyv.js +0 -1
- package/web/assets/classDiagram-OUVF2IWQ-B7B2zLzM.js +0 -1
- package/web/assets/classDiagram-v2-EOCWNBFH-B7B2zLzM.js +0 -1
- package/web/assets/client-CAudjYV9.js +0 -34
- package/web/assets/client-Dn9-_Gm_.js +0 -14
- package/web/assets/client-Dxrf2tyq.js +0 -102
- package/web/assets/client-aFI2M4pE.js +0 -53
- package/web/assets/collection-icon-TbOVyORG.js +0 -1
- package/web/assets/collection-page-Du6FKkuU.js +0 -10
- package/web/assets/command-C_g5E1Wx.js +0 -38
- package/web/assets/copy-Ikmr6Iq2.js +0 -1
- package/web/assets/copy-context-Cl1TE2PJ.js +0 -1
- package/web/assets/document-DcjNSJCk.js +0 -2
- package/web/assets/external-link-BXmSXqqF.js +0 -1
- package/web/assets/file-renderer-BRZTrYx8.js +0 -19
- package/web/assets/file-text-CiiSsCDq.js +0 -1
- package/web/assets/file-viewer-C1wAeVDK.js +0 -1
- package/web/assets/folder-image-AXBrHUcU.js +0 -1
- package/web/assets/folder-landing-BhRg7hwn.js +0 -54
- package/web/assets/folder-list-rIdszVde.js +0 -1
- package/web/assets/folder-metadata-puTC5QqJ.js +0 -2
- package/web/assets/folder-mobile-bar-DjjRQo3T.js +0 -1
- package/web/assets/folder-plugin-view-BU_kzR8j.js +0 -6
- package/web/assets/index-DS2Wmd9I.css +0 -1
- package/web/assets/index-DgqzSeIR.js +0 -1
- package/web/assets/index-DnlTDqaa.js +0 -1
- package/web/assets/index-DztTMDFz.js +0 -2
- package/web/assets/index-kY75qc96.js +0 -1
- package/web/assets/index-p38i_yyY.js +0 -1
- package/web/assets/link-2-BWKA6t--.js +0 -1
- package/web/assets/link-DC_1Z6Yy.js +0 -11
- package/web/assets/linked-session-header-DJYWZ_-q.js +0 -3
- package/web/assets/mail-2rCdIFul.js +0 -1
- package/web/assets/markdown-title-dncAYYiP.js +0 -131
- package/web/assets/notes-page-DIW6rgJp.js +0 -10
- package/web/assets/pencil-8cobiSSq.js +0 -1
- package/web/assets/plus-BHV2wJr7.js +0 -1
- package/web/assets/popover-Cmmgj-MJ.js +0 -9
- package/web/assets/search-CvlYUkN6.js +0 -2
- package/web/assets/select-1SvaKQsS.js +0 -30
- package/web/assets/selection-popup-ntjycEVh.js +0 -7
- package/web/assets/sparkles-CBhGREdc.js +0 -1
- package/web/assets/stateDiagram-2N3HPSRC-BEw1Mheu.js +0 -1
- package/web/assets/stateDiagram-v2-6OUMAXLB-BHtjl1iD.js +0 -1
- package/web/assets/swimlanesDiagram-G3AALYLV-Z362aroZ.js +0 -8
- package/web/assets/tanstack-CD46mJkU.js +0 -1
- package/web/assets/view-context-D-fh9AbH.js +0 -81
- package/web/assets/viewer-capabilities-CROIaoqh.js +0 -1
- package/web/assets/x-BUeE--I4.js +0 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import{c as v,j as s}from"./react-B9jn2M18.js";import{m as Me}from"./tanstack-YzX_Mi37.js";import{c as ve,a as De}from"./folder-plugin-view-DsWR1zmQ.js";import{u as Se}from"./use-folder-filter-LQyXns5Q.js";import{l as g}from"./view-context-gyDl_p2V.js";import"./markdown-Bw9RgUGR.js";import"./index-CNyy98F8.js";import"./button-C6arH7zt.js";import"./utils-DCaHk0Gm.js";import"./command-BugZBGXE.js";import"./index-CCXE8zc9.js";import"./index-DDirZMgx.js";import"./popover-DBD7FF-W.js";import"./folder-image-BfGgxo7i.js";import"./viewer-capabilities-Bpp8Uvcg.js";const ie=6048e5,Te=864e5,Z=Symbol.for("constructDateFrom");function k(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Z in e?e[Z](t):e instanceof Date?new e.constructor(t):new Date(t)}function y(e,t){return k(t||e,e)}function j(e,t,r){const n=y(e,r?.in);return isNaN(t)?k(e,NaN):(t&&n.setDate(n.getDate()+t),n)}function le(e,t,r){const n=y(e,r?.in);if(isNaN(t))return k(e,NaN);if(!t)return n;const a=n.getDate(),o=k(e,n.getTime());o.setMonth(n.getMonth()+t+1,0);const i=o.getDate();return a>=i?o:(n.setFullYear(o.getFullYear(),o.getMonth(),a),n)}let Oe={};function A(){return Oe}function M(e,t){const r=A(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,a=y(e,t?.in),o=a.getDay(),i=(o<n?7:0)+o-n;return a.setDate(a.getDate()-i),a.setHours(0,0,0,0),a}function L(e,t){return M(e,{...t,weekStartsOn:1})}function ce(e,t){const r=y(e,t?.in),n=r.getFullYear(),a=k(r,0);a.setFullYear(n+1,0,4),a.setHours(0,0,0,0);const o=L(a),i=k(r,0);i.setFullYear(n,0,4),i.setHours(0,0,0,0);const c=L(i);return r.getTime()>=o.getTime()?n+1:r.getTime()>=c.getTime()?n:n-1}function ee(e){const t=y(e),r=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return r.setUTCFullYear(t.getFullYear()),+e-+r}function I(e,...t){const r=k.bind(null,t.find(n=>typeof n=="object"));return t.map(r)}function N(e,t){const r=y(e,t?.in);return r.setHours(0,0,0,0),r}function X(e,t,r){const[n,a]=I(r?.in,e,t),o=N(n),i=N(a),c=+o-ee(o),l=+i-ee(i);return Math.round((c-l)/Te)}function Ce(e,t){const r=ce(e,t),n=k(e,0);return n.setFullYear(r,0,4),n.setHours(0,0,0,0),L(n)}function de(e,t,r){return j(e,t*7,r)}function J(e,t,r){const[n,a]=I(r?.in,e,t);return+N(n)==+N(a)}function Pe(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Ee(e){return!(!Pe(e)&&typeof e!="number"||isNaN(+y(e)))}function We(e,t,r){const[n,a]=I(r?.in,e,t),o=n.getFullYear()-a.getFullYear(),i=n.getMonth()-a.getMonth();return o*12+i}function Ye(e,t){const r=y(e,t?.in);return r.setHours(23,59,59,999),r}function ue(e,t){const r=y(e,t?.in);return r.setDate(1),r.setHours(0,0,0,0),r}function Fe(e,t){const r=y(e,t?.in);return r.setFullYear(r.getFullYear(),0,1),r.setHours(0,0,0,0),r}function $e(e,t){const r=A(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,a=y(e,t?.in),o=a.getDay(),i=(o<n?-7:0)+6-(o-n);return a.setDate(a.getDate()+i),a.setHours(23,59,59,999),a}const ze={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},_e=(e,t,r)=>{let n;const a=ze[e];return typeof a=="string"?n=a:t===1?n=a.one:n=a.other.replace("{{count}}",t.toString()),r?.addSuffix?r.comparison&&r.comparison>0?"in "+n:n+" ago":n};function G(e){return(t={})=>{const r=t.width?String(t.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}const Ae={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},qe={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Le={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},He={date:G({formats:Ae,defaultWidth:"full"}),time:G({formats:qe,defaultWidth:"full"}),dateTime:G({formats:Le,defaultWidth:"full"})},Ie={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Re=(e,t,r,n)=>Ie[e];function W(e){return(t,r)=>{const n=r?.context?String(r.context):"standalone";let a;if(n==="formatting"&&e.formattingValues){const i=e.defaultFormattingWidth||e.defaultWidth,c=r?.width?String(r.width):i;a=e.formattingValues[c]||e.formattingValues[i]}else{const i=e.defaultWidth,c=r?.width?String(r.width):e.defaultWidth;a=e.values[c]||e.values[i]}const o=e.argumentCallback?e.argumentCallback(t):t;return a[o]}}const Be={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Ge={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Qe={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Ve={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Xe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Ue={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Je=(e,t)=>{const r=Number(e),n=r%100;if(n>20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},Ke={ordinalNumber:Je,era:W({values:Be,defaultWidth:"wide"}),quarter:W({values:Ge,defaultWidth:"wide",argumentCallback:e=>e-1}),month:W({values:Qe,defaultWidth:"wide"}),day:W({values:Ve,defaultWidth:"wide"}),dayPeriod:W({values:Xe,defaultWidth:"wide",formattingValues:Ue,defaultFormattingWidth:"wide"})};function Y(e){return(t,r={})=>{const n=r.width,a=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],o=t.match(a);if(!o)return null;const i=o[0],c=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(c)?et(c,u=>u.test(i)):Ze(c,u=>u.test(i));let d;d=e.valueCallback?e.valueCallback(l):l,d=r.valueCallback?r.valueCallback(d):d;const m=t.slice(i.length);return{value:d,rest:m}}}function Ze(e,t){for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&t(e[r]))return r}function et(e,t){for(let r=0;r<e.length;r++)if(t(e[r]))return r}function tt(e){return(t,r={})=>{const n=t.match(e.matchPattern);if(!n)return null;const a=n[0],o=t.match(e.parsePattern);if(!o)return null;let i=e.valueCallback?e.valueCallback(o[0]):o[0];i=r.valueCallback?r.valueCallback(i):i;const c=t.slice(a.length);return{value:i,rest:c}}}const rt=/^(\d+)(th|st|nd|rd)?/i,nt=/\d+/i,at={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},st={any:[/^b/i,/^(a|c)/i]},ot={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},it={any:[/1/i,/2/i,/3/i,/4/i]},lt={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},ct={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},dt={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},ut={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},mt={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},ft={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},ht={ordinalNumber:tt({matchPattern:rt,parsePattern:nt,valueCallback:e=>parseInt(e,10)}),era:Y({matchPatterns:at,defaultMatchWidth:"wide",parsePatterns:st,defaultParseWidth:"any"}),quarter:Y({matchPatterns:ot,defaultMatchWidth:"wide",parsePatterns:it,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Y({matchPatterns:lt,defaultMatchWidth:"wide",parsePatterns:ct,defaultParseWidth:"any"}),day:Y({matchPatterns:dt,defaultMatchWidth:"wide",parsePatterns:ut,defaultParseWidth:"any"}),dayPeriod:Y({matchPatterns:mt,defaultMatchWidth:"any",parsePatterns:ft,defaultParseWidth:"any"})},gt={code:"en-US",formatDistance:_e,formatLong:He,formatRelative:Re,localize:Ke,match:ht,options:{weekStartsOn:0,firstWeekContainsDate:1}};function pt(e,t){const r=y(e,t?.in);return X(r,Fe(r))+1}function bt(e,t){const r=y(e,t?.in),n=+L(r)-+Ce(r);return Math.round(n/ie)+1}function me(e,t){const r=y(e,t?.in),n=r.getFullYear(),a=A(),o=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,i=k(t?.in||e,0);i.setFullYear(n+1,0,o),i.setHours(0,0,0,0);const c=M(i,t),l=k(t?.in||e,0);l.setFullYear(n,0,o),l.setHours(0,0,0,0);const d=M(l,t);return+r>=+c?n+1:+r>=+d?n:n-1}function xt(e,t){const r=A(),n=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,a=me(e,t),o=k(t?.in||e,0);return o.setFullYear(a,0,n),o.setHours(0,0,0,0),M(o,t)}function yt(e,t){const r=y(e,t?.in),n=+M(r,t)-+xt(r,t);return Math.round(n/ie)+1}function f(e,t){const r=e<0?"-":"",n=Math.abs(e).toString().padStart(t,"0");return r+n}const S={y(e,t){const r=e.getFullYear(),n=r>0?r:1-r;return f(t==="yy"?n%100:n,t.length)},M(e,t){const r=e.getMonth();return t==="M"?String(r+1):f(r+1,2)},d(e,t){return f(e.getDate(),t.length)},a(e,t){const r=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];default:return r==="am"?"a.m.":"p.m."}},h(e,t){return f(e.getHours()%12||12,t.length)},H(e,t){return f(e.getHours(),t.length)},m(e,t){return f(e.getMinutes(),t.length)},s(e,t){return f(e.getSeconds(),t.length)},S(e,t){const r=t.length,n=e.getMilliseconds(),a=Math.trunc(n*Math.pow(10,r-3));return f(a,t.length)}},O={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},te={G:function(e,t,r){const n=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});default:return r.era(n,{width:"wide"})}},y:function(e,t,r){if(t==="yo"){const n=e.getFullYear(),a=n>0?n:1-n;return r.ordinalNumber(a,{unit:"year"})}return S.y(e,t)},Y:function(e,t,r,n){const a=me(e,n),o=a>0?a:1-a;if(t==="YY"){const i=o%100;return f(i,2)}return t==="Yo"?r.ordinalNumber(o,{unit:"year"}):f(o,t.length)},R:function(e,t){const r=ce(e);return f(r,t.length)},u:function(e,t){const r=e.getFullYear();return f(r,t.length)},Q:function(e,t,r){const n=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(n);case"QQ":return f(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(e,t,r){const n=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(n);case"qq":return f(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(e,t,r){const n=e.getMonth();switch(t){case"M":case"MM":return S.M(e,t);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(e,t,r){const n=e.getMonth();switch(t){case"L":return String(n+1);case"LL":return f(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(e,t,r,n){const a=yt(e,n);return t==="wo"?r.ordinalNumber(a,{unit:"week"}):f(a,t.length)},I:function(e,t,r){const n=bt(e);return t==="Io"?r.ordinalNumber(n,{unit:"week"}):f(n,t.length)},d:function(e,t,r){return t==="do"?r.ordinalNumber(e.getDate(),{unit:"date"}):S.d(e,t)},D:function(e,t,r){const n=pt(e);return t==="Do"?r.ordinalNumber(n,{unit:"dayOfYear"}):f(n,t.length)},E:function(e,t,r){const n=e.getDay();switch(t){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(e,t,r,n){const a=e.getDay(),o=(a-n.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return f(o,2);case"eo":return r.ordinalNumber(o,{unit:"day"});case"eee":return r.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(a,{width:"short",context:"formatting"});default:return r.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,r,n){const a=e.getDay(),o=(a-n.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return f(o,t.length);case"co":return r.ordinalNumber(o,{unit:"day"});case"ccc":return r.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(a,{width:"narrow",context:"standalone"});case"cccccc":return r.day(a,{width:"short",context:"standalone"});default:return r.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,r){const n=e.getDay(),a=n===0?7:n;switch(t){case"i":return String(a);case"ii":return f(a,t.length);case"io":return r.ordinalNumber(a,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(e,t,r){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(a,{width:"narrow",context:"formatting"});default:return r.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,r){const n=e.getHours();let a;switch(n===12?a=O.noon:n===0?a=O.midnight:a=n/12>=1?"pm":"am",t){case"b":case"bb":return r.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(a,{width:"narrow",context:"formatting"});default:return r.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,r){const n=e.getHours();let a;switch(n>=17?a=O.evening:n>=12?a=O.afternoon:n>=4?a=O.morning:a=O.night,t){case"B":case"BB":case"BBB":return r.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(a,{width:"narrow",context:"formatting"});default:return r.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,r){if(t==="ho"){let n=e.getHours()%12;return n===0&&(n=12),r.ordinalNumber(n,{unit:"hour"})}return S.h(e,t)},H:function(e,t,r){return t==="Ho"?r.ordinalNumber(e.getHours(),{unit:"hour"}):S.H(e,t)},K:function(e,t,r){const n=e.getHours()%12;return t==="Ko"?r.ordinalNumber(n,{unit:"hour"}):f(n,t.length)},k:function(e,t,r){let n=e.getHours();return n===0&&(n=24),t==="ko"?r.ordinalNumber(n,{unit:"hour"}):f(n,t.length)},m:function(e,t,r){return t==="mo"?r.ordinalNumber(e.getMinutes(),{unit:"minute"}):S.m(e,t)},s:function(e,t,r){return t==="so"?r.ordinalNumber(e.getSeconds(),{unit:"second"}):S.s(e,t)},S:function(e,t){return S.S(e,t)},X:function(e,t,r){const n=e.getTimezoneOffset();if(n===0)return"Z";switch(t){case"X":return ne(n);case"XXXX":case"XX":return T(n);default:return T(n,":")}},x:function(e,t,r){const n=e.getTimezoneOffset();switch(t){case"x":return ne(n);case"xxxx":case"xx":return T(n);default:return T(n,":")}},O:function(e,t,r){const n=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+re(n,":");default:return"GMT"+T(n,":")}},z:function(e,t,r){const n=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+re(n,":");default:return"GMT"+T(n,":")}},t:function(e,t,r){const n=Math.trunc(+e/1e3);return f(n,t.length)},T:function(e,t,r){return f(+e,t.length)}};function re(e,t=""){const r=e>0?"-":"+",n=Math.abs(e),a=Math.trunc(n/60),o=n%60;return o===0?r+String(a):r+String(a)+t+f(o,2)}function ne(e,t){return e%60===0?(e>0?"-":"+")+f(Math.abs(e)/60,2):T(e,t)}function T(e,t=""){const r=e>0?"-":"+",n=Math.abs(e),a=f(Math.trunc(n/60),2),o=f(n%60,2);return r+a+t+o}const ae=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},fe=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},wt=(e,t)=>{const r=e.match(/(P+)(p+)?/)||[],n=r[1],a=r[2];if(!a)return ae(e,t);let o;switch(n){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;default:o=t.dateTime({width:"full"});break}return o.replace("{{date}}",ae(n,t)).replace("{{time}}",fe(a,t))},Nt={p:fe,P:wt},kt=/^D+$/,jt=/^Y+$/,Mt=["D","DD","YY","YYYY"];function vt(e){return kt.test(e)}function Dt(e){return jt.test(e)}function St(e,t,r){const n=Tt(e,t,r);if(console.warn(n),Mt.includes(e))throw new RangeError(n)}function Tt(e,t,r){const n=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${n} to the input \`${r}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Ot=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Ct=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Pt=/^'([^]*?)'?$/,Et=/''/g,Wt=/[a-zA-Z]/;function b(e,t,r){const n=A(),a=n.locale??gt,o=n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=n.weekStartsOn??n.locale?.options?.weekStartsOn??0,c=y(e,r?.in);if(!Ee(c))throw new RangeError("Invalid time value");let l=t.match(Ct).map(m=>{const u=m[0];if(u==="p"||u==="P"){const p=Nt[u];return p(m,a.formatLong)}return m}).join("").match(Ot).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const u=m[0];if(u==="'")return{isToken:!1,value:Yt(m)};if(te[u])return{isToken:!0,value:m};if(u.match(Wt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+u+"`");return{isToken:!1,value:m}});a.localize.preprocessor&&(l=a.localize.preprocessor(c,l));const d={firstWeekContainsDate:o,weekStartsOn:i,locale:a};return l.map(m=>{if(!m.isToken)return m.value;const u=m.value;(Dt(u)||vt(u))&&St(u,t,String(e));const p=te[u[0]];return p(c,u,a.localize,d)}).join("")}function Yt(e){const t=e.match(Pt);return t?t[1].replace(Et,"'"):e}function U(e,t,r){const[n,a]=I(r?.in,e,t);return n.getFullYear()===a.getFullYear()&&n.getMonth()===a.getMonth()}const Ft={blue:{badge:"border-blue-300 bg-blue-50 text-blue-800 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-200",dot:"bg-blue-500",selected:"border-blue-600 bg-blue-600 !text-white shadow-sm hover:bg-blue-700",soft:"border-blue-200 bg-blue-50 text-blue-800 hover:bg-blue-100 dark:border-blue-900 dark:bg-blue-950 dark:text-blue-200"},green:{badge:"border-emerald-300 bg-emerald-50 text-emerald-800 dark:border-emerald-800 dark:bg-emerald-950 dark:text-emerald-200",dot:"bg-emerald-500",selected:"border-emerald-600 bg-emerald-600 !text-white shadow-sm hover:bg-emerald-700",soft:"border-emerald-200 bg-emerald-50 text-emerald-800 hover:bg-emerald-100 dark:border-emerald-900 dark:bg-emerald-950 dark:text-emerald-200"},orange:{badge:"border-orange-300 bg-orange-50 text-orange-800 dark:border-orange-800 dark:bg-orange-950 dark:text-orange-200",dot:"bg-orange-500",selected:"border-orange-600 bg-orange-600 !text-white shadow-sm hover:bg-orange-700",soft:"border-orange-200 bg-orange-50 text-orange-800 hover:bg-orange-100 dark:border-orange-900 dark:bg-orange-950 dark:text-orange-200"},purple:{badge:"border-purple-300 bg-purple-50 text-purple-800 dark:border-purple-800 dark:bg-purple-950 dark:text-purple-200",dot:"bg-purple-500",selected:"border-purple-600 bg-purple-600 !text-white shadow-sm hover:bg-purple-700",soft:"border-purple-200 bg-purple-50 text-purple-800 hover:bg-purple-100 dark:border-purple-900 dark:bg-purple-950 dark:text-purple-200"},red:{badge:"border-red-300 bg-red-50 text-red-800 dark:border-red-800 dark:bg-red-950 dark:text-red-200",dot:"bg-red-500",selected:"border-red-600 bg-red-600 !text-white shadow-sm hover:bg-red-700",soft:"border-red-200 bg-red-50 text-red-800 hover:bg-red-100 dark:border-red-900 dark:bg-red-950 dark:text-red-200"},yellow:{badge:"border-amber-300 bg-amber-50 text-amber-900 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-100",dot:"bg-amber-500",selected:"border-amber-500 bg-amber-500 !text-amber-950 shadow-sm hover:bg-amber-600",soft:"border-amber-200 bg-amber-50 text-amber-900 hover:bg-amber-100 dark:border-amber-900 dark:bg-amber-950 dark:text-amber-100"}};function he(e){return Ft[e??"blue"]}function K(e){return he(e.color??e.groupColor)}function x(...e){return e.filter(Boolean).join(" ")}function z(e){return{allDay:e.allDay??e.end.getTime()-e.start.getTime()>=86399e3,end:e.end,start:e.start}}function ge(e){return[`## ${e.title}`,"",`- ID: ${e.id}`,`- Start: ${e.start.toISOString()}`,`- End: ${e.end.toISOString()}`,`- All day: ${z(e).allDay?"Yes":"No"}`,e.group?`- Group: ${e.group}`:null,e.status?`- Status: ${e.status}`:null,e.location?`- Location: ${e.location}`:null,e.organizer?`- Organizer: ${e.organizer}`:null,e.attendees?.length?`- Attendees: ${e.attendees.join(", ")}`:null,e.repeating?`- Repeats: ${e.repeating}`:null,e.repeatUntil?`- Repeat until: ${e.repeatUntil.toISOString()}`:null,e.excludeDates?.length?`- Excluded dates: ${e.excludeDates.map(r=>r.toISOString()).join(", ")}`:null,e.reminders?.length?`- Reminders: ${e.reminders.map(r=>r===0?"at start":`${r} minutes before`).join(", ")}`:null,e.tags?.length?`- Tags: ${e.tags.join(", ")}`:null,e.color?`- Color: ${e.color}`:null,e.url?`- URL: ${e.url}`:null,e.description?"":null,e.description??null].filter(r=>r!==null).join(`
|
|
2
|
+
`)}function $t(e,t){const r=`# Calendar context for ${b(e,"EEEE, MMMM d, yyyy")}`;return t.length?`${r}
|
|
3
|
+
|
|
4
|
+
${[...t].sort((n,a)=>n.start.getTime()-a.start.getTime()).map(ge).join(`
|
|
5
|
+
|
|
6
|
+
`)}`:`${r}
|
|
7
|
+
|
|
8
|
+
No events.`}function zt(e){const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.cssText="position:fixed;left:-9999px;top:0",document.body.append(t),t.select();const r=document.execCommand("copy");return t.remove(),r}function _t(e){const t=zt(e);return navigator.clipboard?.writeText?navigator.clipboard.writeText(e).then(()=>!0,()=>t):Promise.resolve(t)}function pe({className:e,iconOnly:t=!1,label:r,value:n}){const[a,o]=v.useState(!1);return s.jsxs("button",{"aria-label":r,className:x("hover:bg-accent flex items-center gap-1 rounded-md border text-xs",t?"size-8 justify-center p-0":"px-2 py-1",e),onClick:()=>{_t(n).then(i=>{i&&(o(!0),window.setTimeout(()=>o(!1),1800))})},title:r,type:"button",children:[a?s.jsx(g.Check,{"aria-hidden":"true",className:"size-3.5"}):s.jsx(g.Clipboard,{"aria-hidden":"true",className:"size-3.5"}),t?null:a?"Copied":r]})}const At=new Set(["blue","green","red","yellow","purple","orange"]),qt=new Set(["daily","weekly","monthly"]),Lt=new Set(["confirmed","tentative","cancelled"]);function C(e,t){for(const r of t){const n=e[r];if(n!=null&&n!=="")return n}}function F(e,t){const r=C(e,t);return typeof r=="string"&&r.trim()?r.trim():void 0}function se(e){if(!Array.isArray(e))return;const t=[...new Set(e.filter(r=>typeof r=="string").map(r=>r.trim()).filter(Boolean))];return t.length?t:void 0}function Ht(e){if(!Array.isArray(e))return;const t=[...new Set(e.filter(r=>typeof r=="number"&&Number.isInteger(r)&&r>=0))].sort((r,n)=>r-n);return t.length?t:void 0}const It=/^\d{4}-\d{2}-\d{2}$/;function Rt(e){const t=e.trim();if(!It.test(t))return;const[r,n,a]=t.split("-").map(Number);return new Date(r??0,(n??1)-1,a??1)}function _(e,t){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(typeof e=="number"&&Number.isFinite(e))return new Date(e);if(typeof e=="string"&&e.trim()){const r=Rt(e)??new Date(e);if(!Number.isNaN(r.getTime()))return r}return t}function Q(e){if(typeof e!="string")return;const t=e.toLowerCase();return At.has(t)?t:void 0}function Bt(e){if(typeof e!="string")return;const t=e.toLowerCase();return qt.has(t)?t:void 0}function Gt(e){if(typeof e!="string")return;const t=e.toLowerCase();return Lt.has(t)?t:void 0}function Qt(e){if(typeof e!="string"||!e.trim())return;const t=e.trim();return/^https?:\/\/[^\s]+$/i.test(t)?t:void 0}function Vt(e){if(!Array.isArray(e))return;const t=e.map(r=>_(r,new Date(Number.NaN))).filter(r=>!Number.isNaN(r.getTime()));return t.length?t:void 0}function Xt(e){if(typeof e=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(e)){const r=_(e,new Date(Number.NaN));return Number.isNaN(r.getTime())?void 0:Ye(r)}const t=_(e,new Date(Number.NaN));return Number.isNaN(t.getTime())?void 0:t}function Ut(e){return e.map((t,r)=>Jt(t,r))}function Jt(e,t){const r=C(e,["id","uid","key"])?.toString()??String(t),n=_(C(e,["start","startDate","start_date","date","begin"]),new Date(0)),a=_(C(e,["end","endDate","end_date","due","finish"]),n),o=typeof e.allDay=="boolean"?e.allDay:void 0,i=n,c=a>i?a:new Date(i.getTime()+(o?864e5:36e5)),l=C(e,["color","colour","calendarId","calendar","category"])??C(e,["calendars"]),d=Q(l)??Q(Array.isArray(l)?l[0]:void 0);return{id:r,start:i,end:c,color:d,folder:typeof e.folder=="string"?e.folder:void 0,group:F(e,["group"]),groupColor:Q(e.groupColor),repeating:Bt(e.repeating),allDay:o,attendees:se(e.attendees),excludeDates:Vt(e.excludeDates),location:F(e,["location"]),organizer:F(e,["organizer"]),reminders:Ht(e.reminders),repeatUntil:Xt(e.repeatUntil),status:Gt(e.status),tags:se(e.tags),url:Qt(e.url),description:F(e,["description","detail","notes","summary","body"]),title:F(e,["title","name","subject","summary","label"])??"Untitled"}}const $=["green","orange","purple","red","yellow","blue"];function Kt(e){const t=new Map,r=new Set;for(const a of e){if(!a.group||t.has(a.group))continue;const o=a.color??a.groupColor;t.set(a.group,o),o&&r.add(o)}let n=0;for(const[a,o]of t){if(o!==void 0)continue;let i;for(let c=0;c<$.length;c++){const l=$[(n+c)%$.length];if(!r.has(l)){i=l,n+=c+1;break}}i||(i=$[n%$.length],n+=1),r.add(i),t.set(a,i)}return e.map(a=>({...a,color:a.color??a.groupColor??t.get(a.group??"")??"blue"}))}function Zt(e,t){return e.repeating==="daily"?j(e.start,t):e.repeating==="weekly"?de(e.start,t):le(e.start,t)}function er(e,t){return e.repeating==="daily"?Math.max(0,X(t,e.start)-1):e.repeating==="weekly"?Math.max(0,Math.floor(X(t,e.start)/7)-1):Math.max(0,We(t,e.start)-1)}function V(e,t,r){if(Number.isNaN(t.getTime())||Number.isNaN(r.getTime())||r<=t)return[];const n=[];for(const a of e){if(!a.repeating){a.end>t&&a.start<r&&n.push(a);continue}const o=a.end.getTime()-a.start.getTime(),i=new Date(t.getTime()-o);for(let c=er(a,i);;c+=1){const l=Zt(a,c);if(Number.isNaN(l.getTime())||l>=r||a.repeatUntil&&l>a.repeatUntil)break;const d=new Date(l.getTime()+o);d<=t||a.excludeDates?.some(m=>J(m,l))||n.push({...a,id:`${a.id}:${l.toISOString()}`,start:l,end:d})}}return n.sort((a,o)=>a.start.getTime()-o.start.getTime())}function tr({event:e}){return s.jsxs("details",{className:"relative",children:[s.jsx("summary",{"aria-label":"More event actions",className:`hover:bg-accent flex size-8 cursor-pointer list-none
|
|
9
|
+
items-center justify-center rounded-md
|
|
10
|
+
[&::-webkit-details-marker]:hidden`,title:"More event actions",children:s.jsx(g.EllipsisVertical,{"aria-hidden":"true",className:"size-4"})}),s.jsxs("div",{className:`bg-background absolute top-9 right-0 z-10 min-w-48 rounded-md
|
|
11
|
+
border p-1 shadow-lg`,role:"menu",children:[s.jsx(pe,{className:"w-full justify-start border-0",label:"Copy event context",value:ge(e)}),e.url?s.jsxs("a",{className:`hover:bg-accent flex items-center gap-2 rounded-md px-2
|
|
12
|
+
py-1.5 text-xs`,href:e.url,rel:"noreferrer",role:"menuitem",target:"_blank",children:[s.jsx(g.ExternalLink,{"aria-hidden":"true",className:"size-3.5"}),"Open event link"]}):null]})]})}function rr({event:e}){return s.jsx("span",{className:x("truncate",e.status==="cancelled"&&"line-through opacity-60"),children:e.title})}function nr({event:e}){const t=K(e);return s.jsx("span",{"aria-hidden":"true",className:x("size-1.5 shrink-0 rounded-full",t.dot)})}function be({event:e,variant:t="chip"}){const r=z(e).allDay,n=K(e),[a,o]=v.useState(!1);return s.jsxs(s.Fragment,{children:[s.jsx("button",{className:x(`block w-full cursor-pointer truncate rounded px-1.5 py-0.5 text-left
|
|
13
|
+
text-xs`,t==="bar"?n.soft:"hover:bg-accent"),onClick:()=>o(!0),type:"button",children:s.jsxs("span",{className:"flex items-center gap-1.5 leading-tight",children:[t==="chip"?s.jsx(nr,{event:e}):null,s.jsx(rr,{event:e})]})}),a?s.jsx("div",{className:`fixed inset-0 z-50 flex items-center justify-center
|
|
14
|
+
bg-black/50 p-4`,role:"presentation",children:s.jsxs("div",{"aria-label":e.title,"aria-modal":"true",className:`bg-background relative max-h-[85vh] w-full max-w-sm
|
|
15
|
+
overflow-auto rounded-xl border p-5 shadow-xl`,role:"dialog",children:[s.jsxs("div",{className:"absolute top-3 right-3 flex items-center gap-1",children:[s.jsx(tr,{event:e}),s.jsx("button",{"aria-label":"Close event",className:`hover:bg-accent flex size-8 items-center
|
|
16
|
+
justify-center rounded-md`,onClick:()=>o(!1),title:"Close event",type:"button",children:s.jsx(g.X,{"aria-hidden":"true",className:"size-4"})})]}),s.jsx("h2",{className:"pr-20 text-lg font-semibold",children:e.title}),s.jsxs("div",{className:"pt-2 text-sm",children:[s.jsxs("p",{className:"text-muted-foreground flex items-center gap-1.5",children:[s.jsx(g.Clock,{"aria-hidden":"true",className:"size-3.5"}),r?`All day · ${b(e.start,"MMM d, yyyy")}`:`${b(e.start,"MMM d, yyyy h:mm a")} - ${b(e.end,"h:mm a")}`]}),e.group?s.jsxs("p",{className:x(`mt-2 inline-flex items-center gap-1.5 rounded-full border
|
|
17
|
+
px-2 py-0.5 text-xs font-medium`,n.soft),children:[s.jsx("span",{"aria-hidden":"true",className:x("size-2 rounded-full",n.dot)}),e.group]}):null,e.description?s.jsx("p",{className:"pt-1 whitespace-pre-wrap",children:e.description}):null,e.location?s.jsxs("p",{className:`text-muted-foreground flex items-center gap-1.5
|
|
18
|
+
pt-2`,children:[s.jsx(g.MapPin,{"aria-hidden":"true",className:"size-3.5 shrink-0"}),e.location]}):null,e.organizer?s.jsxs("p",{className:`text-muted-foreground flex items-center gap-1.5
|
|
19
|
+
pt-2`,children:[s.jsx(g.UserRound,{"aria-hidden":"true",className:"size-3.5 shrink-0"}),"Organized by ",e.organizer]}):null,e.attendees?.length?s.jsxs("p",{className:`text-muted-foreground flex items-start gap-1.5
|
|
20
|
+
pt-2`,children:[s.jsx(g.UsersRound,{"aria-hidden":"true",className:"mt-0.5 size-3.5 shrink-0"}),s.jsx("span",{children:e.attendees.join(", ")})]}):null,e.reminders?.length?s.jsxs("p",{className:`text-muted-foreground flex items-start gap-1.5
|
|
21
|
+
pt-2`,children:[s.jsx(g.Bell,{"aria-hidden":"true",className:"mt-0.5 size-3.5 shrink-0"}),s.jsx("span",{children:e.reminders.map(i=>i===0?"At start":`${i} minutes before`).join(", ")})]}):null,e.repeating?s.jsxs("p",{className:"text-muted-foreground pt-2 capitalize",children:["Repeats ",e.repeating,e.repeatUntil?` until ${b(e.repeatUntil,"MMM d, yyyy")}`:""]}):null,e.excludeDates?.length?s.jsxs("p",{className:"text-muted-foreground pt-2",children:["Excluded:"," ",e.excludeDates.map(i=>b(i,"MMM d, yyyy")).join(", ")]}):null,e.status?s.jsxs("p",{className:"pt-2 capitalize",children:["Status: ",e.status]}):null,e.tags?.length?s.jsxs("div",{className:"flex items-center gap-1.5 pt-2",children:[s.jsx(g.Tag,{"aria-hidden":"true",className:"text-muted-foreground size-3.5 shrink-0"}),s.jsx("div",{className:"flex flex-wrap gap-1",children:e.tags.map(i=>s.jsx("span",{className:"bg-muted rounded px-2 py-0.5 text-xs",children:i},i))})]}):null,e.url?s.jsxs("a",{className:`text-primary flex items-center gap-1.5 pt-2
|
|
22
|
+
underline underline-offset-4`,href:e.url,rel:"noreferrer",target:"_blank",children:[s.jsx(g.ExternalLink,{"aria-hidden":"true",className:"size-3.5 shrink-0"}),s.jsx("span",{className:"break-all",children:e.url})]}):null]})]})}):null]})}const ar=["Mo","Tu","We","Th","Fr","Sa","Su"],xe={weekStartsOn:1},oe=48;function ye(e,t){if(e.length===0)return[];const r=N(e[0]),n=j(N(e[e.length-1]),1),a=t.filter(c=>c.end>r&&c.start<n).sort((c,l)=>c.start.getTime()-l.start.getTime()||l.end.getTime()-l.start.getTime()-(c.end.getTime()-c.start.getTime())),o=[],i=[];for(const c of a){const l=Math.max(0,e.findIndex(u=>u.getTime()>=N(c.start).getTime()));let d=l;for(let u=l;u<e.length&&!(e[u].getTime()>=c.end.getTime());u++)d=u;let m=o.findIndex(u=>u<=l);m===-1&&(m=o.length,o.push(-1)),o[m]=d+1,i.push({endCol:d,event:c,lane:m,startCol:l})}return i}function we({columns:e,items:t}){if(t.length===0)return null;const r=Math.max(...t.map(n=>n.lane))+1;return s.jsx("div",{className:"relative grid",style:{gridTemplateColumns:`repeat(${e}, 1fr)`,gridTemplateRows:`repeat(${r}, auto)`},children:t.map(n=>s.jsx("div",{className:"min-w-0 pr-0.5 pb-0.5",style:{gridColumn:`${n.startCol+1} / ${n.endCol+2}`,gridRow:n.lane+1},children:s.jsx(be,{event:n.event,variant:n.endCol>n.startCol?"bar":"chip"})},n.event.id))})}function sr({date:e,events:t}){const r=ue(e),n=M(r,xe),a=Array.from({length:6},(o,i)=>Array.from({length:7},(c,l)=>j(n,i*7+l)));return s.jsxs("div",{children:[s.jsx("div",{className:"grid grid-cols-7",children:ar.map(o=>s.jsx("div",{className:`text-muted-foreground border-b py-1 text-center text-xs
|
|
23
|
+
font-medium`,children:o},o))}),a.map(o=>s.jsx(or,{days:o,events:t,monthStart:r},o[0].toISOString()))]})}function or({days:e,events:t,monthStart:r}){const n=ye(e,t);return s.jsxs("div",{className:"min-h-20 border-b last:border-b-0",children:[s.jsx("div",{className:"grid grid-cols-7",children:e.map(a=>{const o=U(a,r),i=J(a,new Date);return s.jsx("div",{className:x("flex justify-end border-r px-1.5 py-1 last:border-r-0",!o&&"bg-muted/30"),children:s.jsx("span",{className:x("flex size-5 items-center justify-center rounded-full text-xs",i?"bg-primary text-primary-foreground font-semibold":"text-muted-foreground"),children:b(a,"d")})},a.toISOString())})}),s.jsxs("div",{className:"relative min-h-14 pt-0.5",children:[s.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-0 grid grid-cols-7",children:e.map(a=>s.jsx("div",{className:x("border-r last:border-r-0",!U(a,r)&&"bg-muted/30")},a.toISOString()))}),s.jsx(we,{columns:e.length,items:n})]})]})}function ir(e,t){const r=N(t),n=j(r,1),a=new Map;for(const o of e.filter(i=>i.end>r&&i.start<n&&!z(i).allDay)){const i=Math.max(0,Math.floor(o.start.getHours())),c=Math.min(23,o.end.getHours());for(let l=i;l<=c;l++){const d=a.get(l)??[];d.push(o),a.set(l,d)}}return a}function Ne({columns:e,columnHeaders:t,events:r}){const n=v.useRef(null),a=e.map(l=>({hours:ir(r,l)})),o=ye(e,r.filter(l=>z(l).allDay)),i=o.length>0,c=r.filter(l=>!z(l).allDay).sort((l,d)=>l.start.getTime()-d.start.getTime())[0];return v.useEffect(()=>{const l=requestAnimationFrame(()=>{const d=n.current?.querySelector('[data-slot="scroll-area-viewport"]'),m=d?.querySelector('[data-calendar-first-event="true"]');if(!d||!m)return;const u=d.getBoundingClientRect(),p=m.getBoundingClientRect();d.scrollTo({behavior:"auto",top:Math.max(0,d.scrollTop+p.top-u.top-d.clientHeight/2+p.height/2)})});return()=>cancelAnimationFrame(l)},[c?.id,c?.start]),s.jsx("div",{className:"h-[calc(100vh-240px)] min-h-80",ref:n,children:s.jsx("div",{className:"size-full overflow-auto rounded-[inherit]","data-slot":"scroll-area-viewport",children:s.jsxs("div",{className:"min-w-[600px]",children:[t?s.jsxs("div",{className:"grid border-b",style:{gridTemplateColumns:`52px repeat(${e.length}, 1fr)`},children:[s.jsx("div",{}),t.map((l,d)=>s.jsx("div",{className:"border-l px-2 py-2 font-medium",children:l},e[d]?.toISOString()))]}):null,i?s.jsxs("div",{className:"grid border-b",style:{gridTemplateColumns:"52px 1fr"},children:[s.jsx("div",{className:`text-muted-foreground px-1 py-1 text-right
|
|
24
|
+
text-[0.65rem] uppercase`,children:"All day"}),s.jsxs("div",{className:"relative min-h-8 py-0.5",children:[s.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-0 grid",style:{gridTemplateColumns:`repeat(${e.length}, 1fr)`},children:e.map(l=>s.jsx("div",{className:"border-l"},l.toISOString()))}),s.jsx(we,{columns:e.length,items:o})]})]}):null,s.jsxs("div",{className:"grid",style:{gridTemplateColumns:`52px repeat(${e.length}, 1fr)`},children:[s.jsx("div",{children:Array.from({length:24},(l,d)=>s.jsx("div",{className:`text-muted-foreground relative pr-2 text-right
|
|
25
|
+
text-[0.65rem]`,style:{height:oe},children:s.jsx("span",{className:"absolute top-0 right-1 -translate-y-1/2",children:d===0?"":b(new Date(2020,0,1,d),"ha")})},d))}),a.map((l,d)=>s.jsx("div",{className:"border-l",children:Array.from({length:24},(m,u)=>s.jsx("div",{className:"relative border-t px-1",style:{height:oe},children:l.hours.get(u)?.map(p=>s.jsx("div",{className:x("mb-0.5 truncate rounded border-l-2 text-xs last:mb-0",K(p).badge),"data-calendar-first-event":p.id===c?.id?"true":void 0,children:s.jsx(be,{event:p})},p.id))??null},u))},e[d]?.toISOString()))]})]})})})}function lr({date:e,events:t}){return s.jsx(Ne,{columnHeaders:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx(g.CalendarDays,{"aria-hidden":"true",className:"size-4"}),b(e,"EEE MMM d")]},"day")],columns:[N(e)],events:t})}function cr({date:e,events:t}){const r=M(e,xe),n=Array.from({length:7},(o,i)=>j(r,i)),a=n.map(o=>s.jsxs("div",{className:x("leading-tight",J(o,new Date)&&"text-primary"),children:[s.jsx("strong",{children:b(o,"EEE")})," ",s.jsx("span",{className:"text-muted-foreground",children:b(o,"d")})]},o.toISOString()));return s.jsx(Ne,{columnHeaders:a,columns:n,events:t})}const H={weekStartsOn:1};function dr(e,t){if(e==="day")return b(t,"EEEE, MMM d, yyyy");if(e==="week"){const r=M(t,H),n=$e(t,H);return U(r,n)?`${b(r,"MMM d")} - ${b(n,"d, yyyy")}`:`${b(r,"MMM d")} - ${b(n,"MMM d, yyyy")}`}return b(t,"MMMM yyyy")}function ur({date:e,onNavigate:t,onToday:r,onView:n,view:a}){return s.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-b px-3 py-2",children:[s.jsx("button",{className:"hover:bg-accent h-8 rounded-md border px-3 text-sm",onClick:r,type:"button",children:"Today"}),s.jsxs("div",{className:"flex items-center gap-0.5",children:[s.jsx("button",{"aria-label":"Previous",className:`hover:bg-accent flex size-8 items-center justify-center
|
|
26
|
+
rounded-md`,onClick:()=>t(-1),type:"button",children:s.jsx(g.ChevronLeft,{"aria-hidden":"true",className:"size-4"})}),s.jsx("button",{"aria-label":"Next",className:`hover:bg-accent flex size-8 items-center justify-center
|
|
27
|
+
rounded-md`,onClick:()=>t(1),type:"button",children:s.jsx(g.ChevronRight,{"aria-hidden":"true",className:"size-4"})})]}),s.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-medium",children:dr(a,e)}),s.jsx("div",{"aria-label":"Calendar view",className:"bg-muted flex shrink-0 rounded-md p-1",role:"tablist",children:["month","week","day"].map(o=>s.jsx("button",{"aria-selected":a===o,className:x("rounded px-2 py-1 text-xs capitalize",a===o&&"bg-background shadow-sm"),onClick:()=>n(o),role:"tab",type:"button",children:o},o))})]})}function mr(e){if(!e)return new Date;const t=new Date(e);return Number.isNaN(t.getTime())?new Date:t}function fr(e,t,r){if(t==="month"){const a=M(ue(r),H);return V(e,a,j(a,42))}if(t==="week"){const a=M(r,H);return V(e,a,j(a,7))}const n=N(r);return V(e,n,j(n,1))}function hr(){return s.jsxs("div",{className:`flex flex-col items-center justify-center gap-2 px-6 py-16
|
|
28
|
+
text-center`,children:[s.jsx(g.CalendarDays,{"aria-hidden":"true",className:"text-muted-foreground size-8"}),s.jsx("p",{className:"text-muted-foreground text-sm",children:"No events in this view."})]})}function gr(){return s.jsx("div",{"aria-label":"Loading calendar",className:"flex min-h-80 items-center justify-center",children:s.jsx(g.Loader2,{"aria-label":"Loading",className:"text-muted-foreground size-6 animate-spin",role:"status"})})}function pr({active:e,groups:t,onChange:r}){return t.length<2?null:s.jsxs("div",{"aria-label":"Calendar groups",className:"flex min-w-0 flex-1 gap-1 overflow-x-auto",children:[s.jsxs("button",{"aria-pressed":!e,className:x(`focus-visible:ring-ring flex shrink-0 items-center gap-1.5
|
|
29
|
+
rounded-full border px-2.5 py-1 text-xs font-medium transition-colors
|
|
30
|
+
focus-visible:ring-2 focus-visible:outline-none`,e?"bg-background hover:bg-muted":`border-slate-900 bg-slate-900 !text-white shadow-sm
|
|
31
|
+
dark:border-slate-100 dark:bg-slate-100 dark:!text-slate-900`),onClick:()=>r(void 0),type:"button",children:[e?null:s.jsx(g.Check,{"aria-hidden":"true",className:"size-3"}),"All"]}),t.map(n=>{const a=e===n.name,o=he(n.color);return s.jsxs("button",{"aria-pressed":a,className:x(`focus-visible:ring-ring flex shrink-0 items-center gap-1.5
|
|
32
|
+
rounded-full border px-2.5 py-1 text-xs font-medium
|
|
33
|
+
transition-colors focus-visible:ring-2 focus-visible:outline-none`,a?o.selected:o.soft),onClick:()=>r(a?void 0:n.name),type:"button",children:[a?s.jsx(g.Check,{"aria-hidden":"true",className:"size-3"}):s.jsx("span",{"aria-hidden":"true",className:x("size-2 rounded-full",o.dot)}),n.name]},n.name)})]})}function br({events:e,className:t,initialDate:r,initialView:n="month",loading:a=!1}){const[o,i]=v.useState(()=>mr(r)),[c,l]=v.useState(n),[d,m]=v.useState(),u=h=>{i(w=>c==="month"?le(w,h):c==="week"?de(w,h):j(w,h))},p=Kt(e),D=h=>{if(m(h),!h)return;const w=p.filter(E=>E.group===h).map(E=>E.start).sort((E,je)=>E.getTime()-je.getTime())[0];w&&i(N(w))},R=new Map,B=new Map;for(const h of p)!h.group||R.has(h.group)||(R.set(h.group,h.color),B.set(h.group,h.start.getTime()));const ke=[...R].map(([h,w])=>({color:w,name:h})).sort((h,w)=>(B.get(h.name)??0)-(B.get(w.name)??0)||h.name.localeCompare(w.name)),q=d?p.filter(h=>h.group===d):p,P=fr(q,c,o);return s.jsxs("div",{className:x("calendar-view overflow-hidden rounded-xl border",t),children:[s.jsx(ur,{date:o,onNavigate:u,onToday:()=>i(new Date),onView:l,view:c}),s.jsxs("div",{className:"flex items-center gap-2 border-b px-3 py-2",children:[c==="day"?s.jsx(pe,{iconOnly:!0,label:"Copy day context",value:$t(o,P)}):null,s.jsx(pr,{active:d,groups:ke,onChange:D}),s.jsxs("span",{className:"ml-auto rounded-md border px-2 py-0.5 text-xs",children:[q.length,d?` of ${e.length}`:""," ",q.length===1?"event":"events"]})]}),a?s.jsx(gr,{}):q.length===0||P.length===0?s.jsx(hr,{}):c==="month"?s.jsx(sr,{date:o,events:P}):c==="week"?s.jsx(cr,{date:o,events:P}):s.jsx(lr,{date:o,events:P})]})}function xr({issues:e}){return s.jsxs("div",{className:"rounded-md border border-[#9c3a3a]/40 p-4",children:[s.jsx("p",{className:"m-0 text-sm font-semibold text-[#9c3a3a]",children:"calendar.json is not valid."}),s.jsx("ul",{className:"m-0 mt-2 list-disc space-y-1 pl-5 text-sm text-[#9c3a3a]",children:e.map((t,r)=>s.jsxs("li",{children:[s.jsx("code",{className:"text-[13px]",children:t.path}),": ",t.message]},r))})]})}function yr({folder:e,folderId:t,request:r}){const n=Me.useQuery({enabled:!!e,gcTime:3e5,queryFn:()=>r(""),queryKey:["folder",t,"calendar",""],staleTime:15e3}),a=n.data,o=a?.status==="available",i=v.useMemo(()=>Ut(a?.calendar?.items??[]),[a?.calendar?.items]),c=Se(i,{getFolder:d=>d.folder??null,rootFolder:e}),l=v.useMemo(()=>{const d=a?.calendar?.startDate;if(d){const D=new Date(d);if(!Number.isNaN(D.getTime()))return D}if(!i.length)return;const m=new Date,u=Math.min(...i.map(D=>D.start.getTime())),p=Math.max(...i.map(D=>D.end.getTime()));return m.getTime()>=u&&m.getTime()<=p?m:new Date(u)},[a?.calendar?.startDate,i]);return s.jsxs("div",{className:`mx-auto grid w-full max-w-[1100px] min-w-0 grid-cols-1 gap-4
|
|
34
|
+
px-4 py-5`,children:[n.isPending?s.jsx("p",{className:"text-muted-foreground m-0 text-sm",children:"Loading calendar…"}):null,n.error?s.jsx("p",{className:"m-0 text-sm text-[#9c3a3a]",children:"Could not load calendar."}):null,!n.error&&a?.status==="error"&&a.issues?.length?s.jsx(xr,{issues:a.issues}):null,!n.isPending&&!n.error&&a&&!o?s.jsx("p",{className:"text-muted-foreground m-0 text-sm",children:"No calendar found in this folder."}):null,o&&a?.calendar?s.jsxs(s.Fragment,{children:[s.jsx("h1",{className:"m-0 text-xl font-semibold",children:a.calendar.title??"Calendar"}),c.choices.length>1?s.jsx(De,{ariaLabel:"Filter by folder",choices:c.choices,onSelect:c.setSelected,selected:c.effectiveSelected,total:c.total}):null,s.jsx(br,{className:"bg-background",events:c.visibleItems,initialDate:l,loading:n.isPending})]}):null]})}const Fr={...ve,component:yr};export{xr as CalendarIssues,yr as CalendarPlugin,Fr as calendarClient};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import{c as S,j as r}from"./react-B9jn2M18.js";import{m as fe}from"./tanstack-YzX_Mi37.js";import{C as we,f as ze}from"./app-options-D-RJiQ-X.js";import{A as He}from"./app-view-header-BLvLq02T.js";import{l as k}from"./view-context-gyDl_p2V.js";import{B as K}from"./button-C6arH7zt.js";import{b as je,S as he,c as pe,d as xe,e as ge,f as X,C as Se}from"./select-D8cqNgcp.js";import{C as qe}from"./copy-context-C0Uqsp-3.js";import{F as Ue}from"./folder-list-BfFjv7rR.js";import{u as V,a as Y}from"./utils-DCaHk0Gm.js";import{l as Pe,u as We}from"./index-BaRnbYRw.js";import{c as Xe,g as Ye,b as I,P as q}from"./index-CCXE8zc9.js";import{c as Ge,u as Qe}from"./index-CXhBn-ar.js";import{u as Je}from"./folder-image-BfGgxo7i.js";import"./markdown-Bw9RgUGR.js";import"./popover-DBD7FF-W.js";import"./index-CNyy98F8.js";import"./index-Bp9DidgD.js";var Ze=Object.defineProperty,v=(e,t)=>Ze(e,"name",{value:t,configurable:!0}),Ce=["PageUp","PageDown"],Re=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],Ee={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},U="Slider",[te,et,tt]=Ge(U),[oe,Xt]=Xe(U,[tt]),[nt,W]=oe(U),rt=S.forwardRef(v(function(t,o){const{name:i,min:s=0,max:n=100,step:l=1,orientation:c="horizontal",disabled:d=!1,minStepsBetweenThumbs:f=0,defaultValue:p=[s],value:u,onValueChange:a=v(()=>{},"onValueChange"),onValueCommit:m=v(()=>{},"onValueCommit"),inverted:w=!1,form:y,...g}=t,h=S.useRef(new Set),b=S.useRef(0),P=S.useRef(!1),E=c==="horizontal"?ot:st,[M,x]=S.useState(null),j=V(o,x),[C=[],D]=Ye({prop:u,defaultProp:p,onChange:v(N=>{[...h.current][b.current]?.focus({preventScroll:!0,focusVisible:P.current}),P.current=!1,a(N)},"onChange")}),$=S.useRef(C),Le=S.useRef(C);S.useEffect(()=>{const N=y?M?.ownerDocument.getElementById(y):M?.closest("form");if(N instanceof HTMLFormElement){const _=v(()=>D(Le.current),"reset");return N.addEventListener("reset",_),()=>N.removeEventListener("reset",_)}},[M,y,D]);function ae(N){const _=Ie(C,N);A(N,_)}v(ae,"handleSlideStart");function le(N){A(N,b.current)}v(le,"handleSlideMove");function ce(){String(C)!==String($.current)&&m(C)}v(ce,"handleSlideEnd");function A(N,_,{commit:de}={commit:!1}){const ue=ie(l),Z=O(Math.round((N-s)/l)*l+s,ue),B=Pe(Z,[s,n]);D((F=[])=>{const T=Ae(F,B,_);if(Be(T,f*l)){b.current=T.indexOf(B);const me=String(T)!==String(F);return me&&de&&m(T),me?T:F}else return F})}return v(A,"updateValues"),r.jsx(nt,{scope:t.__scopeSlider,name:i,disabled:d,min:s,max:n,valueIndexToChangeRef:b,thumbs:h.current,values:C,orientation:c,form:y,children:r.jsx(te.Provider,{scope:t.__scopeSlider,children:r.jsx(te.Slot,{scope:t.__scopeSlider,children:r.jsx(E,{"aria-disabled":d,"data-disabled":d?"":void 0,...g,ref:j,onPointerDown:I(g.onPointerDown,()=>{d||($.current=C,P.current=!1)}),min:s,max:n,inverted:w,onSlideStart:d?void 0:ae,onSlideMove:d?void 0:le,onSlideEnd:d?void 0:ce,onHomeKeyDown:()=>{d||(P.current=!0,A(s,0,{commit:!0}))},onEndKeyDown:()=>{d||(P.current=!0,A(n,C.length-1,{commit:!0}))},onStepKeyDown:({event:N,direction:_})=>{if(!d){P.current=!0;const Z=Ce.includes(N.key)||N.shiftKey&&Re.includes(N.key)?10:1,B=b.current,F=C[B],T=ke(F,{min:s,step:l,direction:_,multiplier:Z});A(T,B,{commit:!0})}}})})})})},"Slider")),[Ne,Me]=oe(U,{startEdge:"left",endEdge:"right",size:"width",direction:1}),ot=S.forwardRef(v(function(t,o){const{min:i,max:s,dir:n,inverted:l,onSlideStart:c,onSlideMove:d,onSlideEnd:f,onStepKeyDown:p,...u}=t,[a,m]=S.useState(null),w=V(o,m),y=S.useRef(void 0),g=Qe(n),h=g==="ltr",b=h&&!l||!h&&l;function P(R){const E=y.current||a.getBoundingClientRect(),M=[0,E.width],j=J(M,b?[i,s]:[s,i]);return y.current=E,j(R-E.left)}return v(P,"getValueFromPointer"),r.jsx(Ne,{scope:t.__scopeSlider,startEdge:b?"left":"right",endEdge:b?"right":"left",direction:b?1:-1,size:"width",children:r.jsx(_e,{dir:g,"data-orientation":"horizontal",...u,ref:w,style:{...u.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:R=>{const E=P(R.clientX);c?.(E)},onSlideMove:R=>{const E=P(R.clientX);d?.(E)},onSlideEnd:()=>{y.current=void 0,f?.()},onStepKeyDown:R=>{const M=Ee[b?"from-left":"from-right"].includes(R.key);p?.({event:R,direction:M?-1:1})}})})},"SliderHorizontal")),st=S.forwardRef(v(function(t,o){const{min:i,max:s,inverted:n,onSlideStart:l,onSlideMove:c,onSlideEnd:d,onStepKeyDown:f,...p}=t,u=S.useRef(null),a=V(o,u),m=S.useRef(void 0),w=!n;function y(g){const h=m.current||u.current.getBoundingClientRect(),b=[0,h.height],R=J(b,w?[s,i]:[i,s]);return m.current=h,R(g-h.top)}return v(y,"getValueFromPointer"),r.jsx(Ne,{scope:t.__scopeSlider,startEdge:w?"bottom":"top",endEdge:w?"top":"bottom",size:"height",direction:w?1:-1,children:r.jsx(_e,{"data-orientation":"vertical",...p,ref:a,style:{...p.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:g=>{const h=y(g.clientY);l?.(h)},onSlideMove:g=>{const h=y(g.clientY);c?.(h)},onSlideEnd:()=>{m.current=void 0,d?.()},onStepKeyDown:g=>{const b=Ee[w?"from-bottom":"from-top"].includes(g.key);f?.({event:g,direction:b?-1:1})}})})},"SliderVertical")),_e=S.forwardRef(v(function(t,o){const{__scopeSlider:i,onSlideStart:s,onSlideMove:n,onSlideEnd:l,onHomeKeyDown:c,onEndKeyDown:d,onStepKeyDown:f,...p}=t,u=W(U,i);return r.jsx(q.span,{...p,ref:o,onKeyDown:I(t.onKeyDown,a=>{a.key==="Home"?(c(a),a.preventDefault()):a.key==="End"?(d(a),a.preventDefault()):Ce.concat(Re).includes(a.key)&&(f(a),a.preventDefault())}),onPointerDown:I(t.onPointerDown,a=>{const m=a.target;m.setPointerCapture(a.pointerId),a.preventDefault(),u.thumbs.has(m)?m.focus({preventScroll:!0,focusVisible:!1}):s(a)}),onPointerMove:I(t.onPointerMove,a=>{a.target.hasPointerCapture(a.pointerId)&&n(a)}),onPointerUp:I(t.onPointerUp,a=>{const m=a.target;m.hasPointerCapture(a.pointerId)&&(m.releasePointerCapture(a.pointerId),l(a))})})},"SliderImpl")),it="SliderTrack",at=S.forwardRef(v(function(t,o){const{__scopeSlider:i,...s}=t,n=W(it,i);return r.jsx(q.span,{"data-disabled":n.disabled?"":void 0,"data-orientation":n.orientation,...s,ref:o})},"SliderTrack")),be="SliderRange",lt=S.forwardRef(v(function(t,o){const{__scopeSlider:i,...s}=t,n=W(be,i),l=Me(be,i),c=S.useRef(null),d=V(o,c),f=n.values.length,p=n.values.map(m=>se(m,n.min,n.max)),u=f>1?Math.min(...p):0,a=100-Math.max(...p);return r.jsx(q.span,{"data-orientation":n.orientation,"data-disabled":n.disabled?"":void 0,...s,ref:d,style:{...t.style,[l.startEdge]:u+"%",[l.endEdge]:a+"%"}})},"SliderRange")),ct="SliderThumb",[dt,De]=oe(ct),ut="SliderThumbProvider";function Te(e){const{__scopeSlider:t,name:o,children:i,internal_do_not_use_render:s}=e,n=W(ut,t),l=et(t),[c,d]=S.useState(null),f=S.useMemo(()=>c?l().findIndex(g=>g.ref.current===c):-1,[l,c]),p=Je(c),u=c?!!n.form||!!c.closest("form"):!0,a=n.values[f],m=o??(n.name?n.name+(n.values.length>1?"[]":""):void 0),w=a===void 0?0:se(a,n.min,n.max);S.useEffect(()=>{if(c)return n.thumbs.add(c),()=>{n.thumbs.delete(c)}},[c,n.thumbs]);const y={value:a,name:m,form:n.form,isFormControl:u,index:f,thumb:c,onThumbChange:d,percent:w,size:p};return r.jsx(dt,{scope:t,...y,children:Ke(s)?s(y):i})}v(Te,"SliderThumbProvider");var ee="SliderThumbTrigger",mt=S.forwardRef(v(function(t,o){const{__scopeSlider:i,...s}=t,n=W(ee,i),l=Me(ee,i),{index:c,value:d,percent:f,size:p,onThumbChange:u}=De(ee,i),a=V(o,u),m=Fe(c,n.values.length),w=p?.[l.size],y=w?Ve(w,f,l.direction):0;return r.jsx("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[l.startEdge]:`calc(${f}% + ${y}px)`},children:r.jsx(te.ItemSlot,{scope:i,children:r.jsx(q.span,{role:"slider","aria-label":t["aria-label"]||m,"aria-valuemin":n.min,"aria-valuenow":d,"aria-valuemax":n.max,"aria-orientation":n.orientation,"data-orientation":n.orientation,"data-disabled":n.disabled?"":void 0,tabIndex:n.disabled?void 0:0,...s,ref:a,style:d===void 0?{display:"none"}:t.style,onFocus:I(t.onFocus,()=>{n.valueIndexToChangeRef.current=c})})})})},"SliderThumbTrigger")),ft=S.forwardRef(v(function(t,o){const{__scopeSlider:i,name:s,...n}=t;return r.jsx(Te,{__scopeSlider:i,name:s,internal_do_not_use_render:({index:l,isFormControl:c})=>r.jsxs(r.Fragment,{children:[r.jsx(mt,{...n,ref:o,__scopeSlider:i}),c?r.jsx(pt,{__scopeSlider:i},l):null]})})},"SliderThumb")),ht="SliderBubbleInput",pt=S.forwardRef(v(function({__scopeSlider:t,...o},i){const{value:s,name:n,form:l}=De(ht,t),c=S.useRef(null),d=V(c,i),f=We(s);return S.useEffect(()=>{const p=c.current;if(!p)return;const u=window.HTMLInputElement.prototype,m=Object.getOwnPropertyDescriptor(u,"value").set;if(f!==s&&m){const w=new Event("input",{bubbles:!0});m.call(p,s),p.dispatchEvent(w)}},[f,s]),r.jsx(q.input,{style:{display:"none"},name:n,form:l,...o,ref:d,defaultValue:s})},"SliderBubbleInput"));function Ae(e=[],t,o){const i=[...e];return i[o]=t,i.sort((s,n)=>s-n)}v(Ae,"getNextSortedValues");function se(e,t,o){const n=100/(o-t)*(e-t);return Pe(n,[0,100])}v(se,"convertValueToPercentage");function Fe(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}v(Fe,"getLabel");function Ie(e,t){if(e.length===1)return 0;const o=e.map(s=>Math.abs(s-t)),i=Math.min(...o);return o.indexOf(i)}v(Ie,"getClosestValueIndex");function Ve(e,t,o){const i=e/2,n=J([0,50],[0,i]);return(i-n(t)*o)*o}v(Ve,"getThumbInBoundsOffset");function $e(e){return e.slice(0,-1).map((t,o)=>e[o+1]-t)}v($e,"getStepsBetweenValues");function Be(e,t){if(t>0){const o=$e(e);return Math.min(...o)>=t}return!0}v(Be,"hasMinStepsBetweenValues");function J(e,t){return o=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const i=(t[1]-t[0])/(e[1]-e[0]);return t[0]+i*(o-e[0])}}v(J,"linearScale");function ie(e){if(!Number.isFinite(e))return 0;const t=e.toString();if(t.includes("e")){const[i,s]=t.split("e"),n=i.split(".")[1]||"",l=Number(s);return Math.max(0,n.length-l)}const o=t.split(".")[1];return o?o.length:0}v(ie,"getDecimalCount");function O(e,t){const o=Math.pow(10,t);return Math.round(e*o)/o}v(O,"roundValue");function ke(e,{min:t,step:o,direction:i,multiplier:s}){const n=ie(o),l=(e-t)/o,c=Math.round(l),d=O(c*o+t,n)===O(e,n);let f;return d?f=c+s*i:i>0?f=Math.ceil(l):f=Math.floor(l),O(f*o+t,n)}v(ke,"getNextStepValue");function Ke(e){return typeof e=="function"}v(Ke,"isFunction");function xt({className:e,type:t,...o}){return r.jsx("input",{type:t,"data-slot":"input",className:Y(`file:text-foreground placeholder:text-muted-foreground
|
|
2
|
+
selection:bg-primary selection:text-primary-foreground dark:bg-input/30
|
|
3
|
+
border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3
|
|
4
|
+
py-1 text-base shadow-xs transition-[color,box-shadow] outline-none
|
|
5
|
+
file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm
|
|
6
|
+
file:font-medium disabled:pointer-events-none
|
|
7
|
+
disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50
|
|
8
|
+
focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40
|
|
9
|
+
aria-invalid:border-destructive`,e),...o})}const G="f_",Q="max_",L="min_",ne="q",re="sort";function gt(e,t,o){const i=new URL(e),s=new Set(t),n=new Set(o),l={},c={};for(const[d,f]of i.searchParams){if(d.startsWith(G)&&f){const m=d.slice(G.length);s.has(m)&&(l[m]=f);continue}const p=d.startsWith(L)?L:d.startsWith(Q)?Q:void 0;if(!p||!f)continue;const u=d.slice(p.length),a=Number(f);!n.has(u)||!Number.isFinite(a)||(c[u]={...c[u],[p===L?"min":"max"]:a})}return{filters:l,query:i.searchParams.get(ne)??"",ranges:c,sort:Oe(e)}}function Oe(e){return new URL(e).searchParams.get(re)==="alpha"?"alpha":"recent"}function St(e,t){const o=new URL(e);o.searchParams.delete(ne);for(const s of[...o.searchParams.keys()])(s.startsWith(G)||s.startsWith(L)||s.startsWith(Q))&&o.searchParams.delete(s);const i=t.query.trim();i&&o.searchParams.set(ne,i),t.sort==="alpha"?o.searchParams.set(re,t.sort):o.searchParams.delete(re);for(const[s,n]of Object.entries(t.filters))n&&o.searchParams.set(`${G}${s}`,n);for(const[s,n]of Object.entries(t.ranges))Number.isFinite(n.min)&&o.searchParams.set(`${L}${s}`,String(n.min)),Number.isFinite(n.max)&&o.searchParams.set(`${Q}${s}`,String(n.max));return o.toString()}function z(e,t){let o=e;for(const i of t.split(".")){if(!o||typeof o!="object"||Array.isArray(o))return;o=o[i]}return o}function H(e){return e==null?"":Array.isArray(e)?e.map(H).join(", "):typeof e=="object"?JSON.stringify(e):String(e)}function bt(e,t){return[...new Set(e.records.map(o=>H(z(o.fields,t))).filter(Boolean))].sort()}function vt(e,t,o="",i={}){const s=o.trim().toLocaleLowerCase();return e.records.filter(n=>(!s||`${n.title} ${Object.values(n.fields).map(H).join(" ")}`.toLocaleLowerCase().includes(s))&&e.ui.filters.every(l=>!t[l]||H(z(n.fields,l))===t[l])&&Object.entries(i).every(([l,c])=>{const d=z(n.fields,l);return typeof d=="number"&&(c.min===void 0||d>=c.min)&&(c.max===void 0||d<=c.max)}))}function yt({collection:e,record:t}){const[o,i]=S.useState(),s=t.iconAssetKey?e.assets?.[t.iconAssetKey]:void 0,n=s?s.url??(s.data?`data:${s.mediaType};base64,${s.data}`:void 0):void 0;return!n||o===n?r.jsx(we,{name:e.icon}):r.jsx("img",{alt:"","aria-hidden":"true",onError:()=>i(n),src:n,style:{width:18,height:18,borderRadius:4,objectFit:"contain",flexShrink:0}})}const ve=e=>e.replace(/[\\/][^\\/]+$/,""),wt=e=>/(?:^|[\\/])(?:AGENTS|README|SKILL)\.md$/i.test(e);function jt({collection:e,documentHref:t,folderHref:o,folder:i,records:s}){return r.jsx(Ue,{className:"landing-collection-records",items:s,renderActions:n=>r.jsx(qe,{className:"landing-list-copy-context",context:()=>ve(n.path),label:`Copy folder path for ${n.title}`}),empty:r.jsx("p",{className:"landing-empty",children:e.count?"No matching records.":"No records match this collection’s document patterns."}),getClassName:()=>"has-copy-context",getKey:n=>n.id,getHref:n=>wt(n.path)?o(ve(n.path)):`${t(n.path.slice(i.length+1))}?collection=${encodeURIComponent(e.id)}`,renderItem:n=>r.jsxs(r.Fragment,{children:[r.jsx(yt,{collection:e,record:n}),r.jsxs("span",{children:[r.jsx("strong",{children:n.title}),r.jsx("small",{children:e.ui.secondaryField?H(z(n.fields,e.ui.secondaryField)):n.relativePath}),n.validationErrors.length?r.jsxs("small",{className:"text-destructive",title:n.validationErrors.map(l=>`${l.path}: ${l.message}`).join(`
|
|
10
|
+
`),children:[n.validationErrors.length," metadata issues"]}):null]})]})})}function Pt({className:e,defaultValue:t,value:o,min:i=0,max:s=100,...n}){const l=S.useMemo(()=>Array.isArray(o)?o:Array.isArray(t)?t:[i,s],[o,t,i,s]);return r.jsxs(rt,{"data-slot":"slider",defaultValue:t,value:o,min:i,max:s,className:Y(`relative flex w-full touch-none items-center select-none
|
|
11
|
+
data-[disabled]:opacity-50 data-[orientation=vertical]:h-full
|
|
12
|
+
data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto
|
|
13
|
+
data-[orientation=vertical]:flex-col`,e),...n,children:[r.jsx(at,{"data-slot":"slider-track",className:Y(`bg-muted relative grow overflow-hidden rounded-full
|
|
14
|
+
data-[orientation=horizontal]:h-1.5
|
|
15
|
+
data-[orientation=horizontal]:w-full
|
|
16
|
+
data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5`),children:r.jsx(lt,{"data-slot":"slider-range",className:Y(`bg-primary absolute data-[orientation=horizontal]:h-full
|
|
17
|
+
data-[orientation=vertical]:w-full`)})}),Array.from({length:l.length},(c,d)=>r.jsx(ft,{"data-slot":"slider-thumb",className:`border-primary ring-ring/50 block size-4 shrink-0
|
|
18
|
+
rounded-full border bg-white shadow-sm transition-[color,box-shadow]
|
|
19
|
+
hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden
|
|
20
|
+
disabled:pointer-events-none disabled:opacity-50`},d))]})}function Ct(e,t){const o=e.records.map(i=>z(i.fields,t)).filter(i=>typeof i=="number");return{max:Math.max(...o),min:Math.min(...o)}}const ye=new Intl.NumberFormat;function Rt({collection:e,filters:t,onClear:o,onFilters:i,onRanges:s,onRangesCommit:n,onSort:l,ranges:c,refreshing:d=!1,sort:f}){const p=Object.values(t).some(Boolean)||Object.values(c).some(u=>u.min!==void 0||u.max!==void 0);return r.jsxs(je,{id:"collection-filters",className:"rounded-xl bg-white px-4 shadow-sm","aria-label":"Collection filters",role:"region",children:[r.jsxs("div",{className:"flex items-center justify-between gap-2",children:[r.jsxs("p",{className:"text-muted-foreground text-xs",role:"status",children:[d?"Refreshing metadata…":`Indexed ${new Date(e.indexedAt).toLocaleString()}`,e.state==="error"?" · Index has errors":""]}),p?r.jsx(K,{variant:"ghost",size:"sm",onClick:o,children:"Clear"}):null]}),r.jsxs("div",{className:"flex flex-wrap items-end gap-3 py-3",children:[e.ui.sort?null:r.jsxs("label",{className:"grid gap-1 text-sm",children:["Order",r.jsxs(he,{value:f,onValueChange:u=>l(u),children:[r.jsx(pe,{"aria-label":"Order records",children:r.jsx(xe,{})}),r.jsxs(ge,{children:[r.jsx(X,{value:"recent",children:"Recently updated"}),r.jsx(X,{value:"alpha",children:"Alphabetical"})]})]})]}),e.ui.filters.map(u=>{const a=bt(e,u);return r.jsxs("label",{className:"grid gap-1 text-sm",children:[u,r.jsxs(he,{value:t[u]?`value:${t[u]}`:"all",onValueChange:m=>i(w=>({...w,[u]:m==="all"?"":m.slice(6)})),children:[r.jsx(pe,{"aria-label":`Filter ${u}`,children:r.jsx(xe,{})}),r.jsxs(ge,{children:[r.jsx(X,{value:"all",children:"All"}),a.map(m=>r.jsx(X,{value:`value:${m}`,children:m},m))]})]})]},u)}),e.ui.numericFilters.map(u=>{const a=Ct(e,u),m=c[u]??{},w=Math.max(a.min,m.min??a.min),y=Math.min(a.max,m.max??a.max),g=(h,b)=>P=>{const R={max:b===a.max?void 0:b,min:h===a.min?void 0:h},E={...P,[u]:R};return R.min===void 0&&R.max===void 0&&delete E[u],E};return r.jsxs("fieldset",{className:"grid min-w-56 gap-1 text-sm",children:[r.jsx("legend",{children:u}),r.jsx(Pt,{"aria-label":`Filter ${u}`,max:a.max,min:a.min,step:Number.isInteger(a.min)&&Number.isInteger(a.max)?1:void 0,value:[Math.min(w,y),Math.max(w,y)],onValueChange:h=>{const[b,P]=h;b!==void 0&&P!==void 0&&s(g(b,P))},onValueCommit:h=>{const[b,P]=h;b!==void 0&&P!==void 0&&n(g(b,P))}}),r.jsxs("span",{className:"text-muted-foreground flex justify-between text-xs",children:[r.jsx("span",{children:ye.format(Math.min(w,y))}),r.jsx("span",{children:ye.format(Math.max(w,y))})]})]},u)})]})]})}function Et({onQuery:e,query:t}){return r.jsx(je,{id:"collection-search",className:"rounded-xl border bg-white px-4 py-3 shadow-sm","aria-label":"Search collection",role:"region",children:r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(xt,{className:"max-w-sm","aria-label":"Search collection",placeholder:"Search records…",value:t,onChange:o=>e(o.target.value)}),t.trim()?r.jsx(K,{variant:"ghost",size:"sm",onClick:()=>e(""),children:"Clear"}):null]})})}function Nt(e){return t=>{typeof window>"u"||window.history.replaceState(null,"",St(window.location.href,{...t,sort:e}))}}function Mt({collection:e,documentHref:t,folderHref:o,folder:i,href:s,onSort:n,refreshing:l=!1,sort:c}){const[d,f]=S.useState(!1),[p,u]=S.useState(!1),[a,m]=S.useState(()=>gt(s,e.ui.filters,e.ui.numericFilters)),w=Nt(c),y=(x,j=!0)=>{m(C=>{const D=x(C);return j&&w(D),D})},g=x=>y(j=>({...j,query:x})),h=x=>y(j=>({...j,filters:x(j.filters)})),b=(x,j=!0)=>y(C=>({...C,ranges:x(C.ranges)}),j),P=x=>b(x),R=x=>b(x,!1),E=vt(e,a.filters,a.query,a.ranges),M=e.ui.filters.filter(x=>a.filters[x]).map(x=>({key:`filter:${x}`,label:`${x}: ${a.filters[x]}`,remove:()=>h(j=>{const C={...j};return delete C[x],C})}));for(const x of e.ui.numericFilters){const j=a.ranges[x];if(!j||j.min===void 0&&j.max===void 0)continue;const C=[j.min===void 0?"":`≥ ${j.min}`,j.max===void 0?"":`≤ ${j.max}`].filter(Boolean).join(" · ");M.push({key:`range:${x}`,label:`${x}: ${C}`,remove:()=>P(D=>{const $={...D};return delete $[x],$})})}return a.query.trim()&&M.push({key:"query",label:`Search: “${a.query.trim()}”`,remove:()=>g("")}),r.jsxs("main",{className:"mx-auto grid w-full max-w-3xl gap-4 px-4 py-5","aria-label":e.title,children:[r.jsxs("header",{className:"flex flex-wrap items-center justify-between gap-3",children:[r.jsxs("h1",{className:`m-0 flex items-center gap-2 text-2xl font-semibold
|
|
21
|
+
text-[#233025]`,children:[r.jsx(we,{name:e.icon}),e.title]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-muted-foreground text-sm",role:"status",children:M.length?`${E.length} ${E.length===1?"result":"results"}`:e.count}),r.jsx(K,{variant:"ghost",size:"icon","aria-controls":"collection-search","aria-expanded":p,"aria-label":p?"Hide search":"Show search",onClick:()=>u(x=>!x),children:p?r.jsx(k.X,{"aria-hidden":"true"}):r.jsx(k.Search,{"aria-hidden":"true"})}),r.jsx(K,{variant:"ghost",size:"icon","aria-controls":"collection-filters","aria-expanded":d,"aria-label":d?"Hide filters":"Show filters",onClick:()=>f(x=>!x),children:d?r.jsx(k.X,{"aria-hidden":"true"}):r.jsx(k.Filter,{"aria-hidden":"true"})})]})]}),M.length?r.jsx("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":"Active filters",children:M.map(({key:x,label:j,remove:C})=>r.jsxs(K,{type:"button",variant:"secondary",size:"sm",className:`border-border h-auto max-w-full rounded-full border
|
|
22
|
+
py-1 text-xs`,"aria-label":`Remove ${j}`,title:j,onClick:C,children:[r.jsx("span",{className:"min-w-0 truncate",children:j}),r.jsx(k.X,{"aria-hidden":"true",className:"size-3"})]},x))}):null,r.jsx(Se,{open:p,onOpenChange:u,children:r.jsx(Et,{onQuery:g,query:a.query})}),r.jsx(Se,{open:d,onOpenChange:f,children:r.jsx(Rt,{collection:e,filters:a.filters,onFilters:h,onRanges:R,onRangesCommit:P,onClear:()=>y(x=>({...x,filters:{},ranges:{}})),ranges:a.ranges,onSort:n,refreshing:l,sort:c})}),e.diagnostics.length?r.jsx("ul",{role:"alert",className:"text-destructive m-0 text-sm",children:e.diagnostics.map((x,j)=>r.jsx("li",{children:x.message},j))}):null,r.jsx(jt,{collection:e,documentHref:t,folderHref:o,folder:i,records:E})]})}function Yt({collectionHref:e,documentHref:t,folderHref:o,homeHref:i,href:s,openFolder:n,parseRoute:l,request:c,subscribeApiEvent:d}){const{folder:f,collectionId:p}=l(s),u=fe.useQueryClient(),a=Oe(s),[m,w]=S.useState(a);S.useEffect(()=>{w(a)},[a]);const y=h=>{w(h)};S.useEffect(()=>{const h=()=>{u.invalidateQueries({queryKey:["collection",f]})},b=d("kennel:metadata-changed",h),P=d("kennel:workspace-changed",h);return()=>{b(),P()}},[u,f,d]);const g=fe.useQuery({queryKey:["collection",f,p,m],enabled:!!(f&&p),placeholderData:(h,b)=>b&&b.queryKey[1]===f&&b.queryKey[2]===p?h:void 0,queryFn:({signal:h})=>c(s,"collections",{id:p,signal:h,sort:m})});return g.error?r.jsxs("p",{role:"alert",children:["Could not load collection: ",g.error.message]}):g.data?r.jsxs(r.Fragment,{children:[r.jsx(He,{actions:ze({folderPath:g.data.folder,onOpenFolder:n?()=>n(g.data.folder):void 0}),className:"collection-page-header",collectionHref:h=>e(g.data.folder,h),folder:g.data.folder,folderHref:o,homeHref:i(g.data.folder)}),r.jsx(Mt,{href:s,folder:g.data.folder,collection:g.data.collection,documentHref:h=>t(g.data.folder,h),folderHref:o,onSort:y,refreshing:g.isFetching,sort:m},`${f}:${p}`)]}):r.jsx("p",{role:"status",children:"Loading collection…"})}export{Yt as CollectionPage};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import{c as s,j as m,R as Be,d as ht,B as Et}from"./react-B9jn2M18.js";import{R as yt,h as bt}from"./index-CCXE8zc9.js";import{l as Ke}from"./view-context-gyDl_p2V.js";import{a as M}from"./utils-DCaHk0Gm.js";import{D as xt,c as Ct,d as Dt,a as wt,b as Rt,e as Nt,f as St,g as It}from"./index-DDirZMgx.js";var Ae=1,Pt=.9,Ot=.8,At=.17,me=.1,pe=.999,_t=.9999,kt=.99,Tt=/[\\\/_+.#"@\[\(\{&]/,Mt=/[\\\/_+.#"@\[\(\{&]/g,Ft=/[\s-]/,Ve=/[\s-]/g;function ye(e,t,n,o,r,a,c){if(a===t.length)return r===e.length?Ae:kt;var i=`${r},${a}`;if(c[i]!==void 0)return c[i];for(var f=o.charAt(a),l=n.indexOf(f,r),d=0,p,y,h,R;l>=0;)p=ye(e,t,n,o,l+1,a+1,c),p>d&&(l===r?p*=Ae:Tt.test(e.charAt(l-1))?(p*=Ot,h=e.slice(r,l-1).match(Mt),h&&r>0&&(p*=Math.pow(pe,h.length))):Ft.test(e.charAt(l-1))?(p*=Pt,R=e.slice(r,l-1).match(Ve),R&&r>0&&(p*=Math.pow(pe,R.length))):(p*=At,r>0&&(p*=Math.pow(pe,l-r))),e.charAt(l)!==t.charAt(a)&&(p*=_t)),(p<me&&n.charAt(l-1)===o.charAt(a+1)||o.charAt(a+1)===o.charAt(a)&&n.charAt(l-1)!==o.charAt(a))&&(y=ye(e,t,n,o,l+1,a+2,c),y*me>p&&(p=y*me)),p>d&&(d=p),l=n.indexOf(f,l+1);return c[i]=d,d}function _e(e){return e.toLowerCase().replace(Ve," ")}function jt(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,ye(e,t,_e(e),_e(t),0,0,{})}function W(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}function ke(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function K(...e){return t=>{let n=!1;const o=e.map(r=>{const a=ke(r,t);return!n&&typeof a=="function"&&(n=!0),a});if(n)return()=>{for(let r=0;r<o.length;r++){const a=o[r];typeof a=="function"?a():ke(e[r],null)}}}}function H(...e){return s.useCallback(K(...e),e)}function Lt(e,t){const n=s.createContext(t),o=a=>{const{children:c,...i}=a,f=s.useMemo(()=>i,Object.values(i));return m.jsx(n.Provider,{value:f,children:c})};o.displayName=e+"Provider";function r(a){const c=s.useContext(n);if(c)return c;if(t!==void 0)return t;throw new Error(`\`${a}\` must be used within \`${e}\``)}return[o,r]}function $t(e,t=[]){let n=[];function o(a,c){const i=s.createContext(c),f=n.length;n=[...n,c];const l=p=>{const{scope:y,children:h,...R}=p,x=y?.[e]?.[f]||i,N=s.useMemo(()=>R,Object.values(R));return m.jsx(x.Provider,{value:N,children:h})};l.displayName=a+"Provider";function d(p,y){const h=y?.[e]?.[f]||i,R=s.useContext(h);if(R)return R;if(c!==void 0)return c;throw new Error(`\`${p}\` must be used within \`${a}\``)}return[l,d]}const r=()=>{const a=n.map(c=>s.createContext(c));return function(i){const f=i?.[e]||a;return s.useMemo(()=>({[`__scope${e}`]:{...i,[e]:f}}),[i,f])}};return r.scopeName=e,[o,Wt(r,...t)]}function Wt(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(a){const c=o.reduce((i,{useScope:f,scopeName:l})=>{const p=f(a)[`__scope${l}`];return{...i,...p}},{});return s.useMemo(()=>({[`__scope${t.scopeName}`]:c}),[c])}};return n.scopeName=t.scopeName,n}var ee=globalThis?.document?s.useLayoutEffect:()=>{},Ut=Be[" useId ".trim().toString()]||(()=>{}),Bt=0;function j(e){const[t,n]=s.useState(Ut());return ee(()=>{n(o=>o??String(Bt++))},[e]),t?`radix-${t}`:""}var Kt=Be[" useInsertionEffect ".trim().toString()]||ee;function Vt({prop:e,defaultProp:t,onChange:n=()=>{},caller:o}){const[r,a,c]=zt({defaultProp:t,onChange:n}),i=e!==void 0,f=i?e:r;{const d=s.useRef(e!==void 0);s.useEffect(()=>{const p=d.current;p!==i&&console.warn(`${o} is changing from ${p?"controlled":"uncontrolled"} to ${i?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=i},[i,o])}const l=s.useCallback(d=>{if(i){const p=Ht(d)?d(e):d;p!==e&&c.current?.(p)}else a(d)},[i,e,a,c]);return[f,l]}function zt({defaultProp:e,onChange:t}){const[n,o]=s.useState(e),r=s.useRef(n),a=s.useRef(t);return Kt(()=>{a.current=t},[t]),s.useEffect(()=>{r.current!==n&&(a.current?.(n),r.current=n)},[n,r]),[n,o,a]}function Ht(e){return typeof e=="function"}function ze(e){const t=Gt(e),n=s.forwardRef((o,r)=>{const{children:a,...c}=o,i=s.Children.toArray(a),f=i.find(Xt);if(f){const l=f.props.children,d=i.map(p=>p===f?s.Children.count(l)>1?s.Children.only(null):s.isValidElement(l)?l.props.children:null:p);return m.jsx(t,{...c,ref:r,children:s.isValidElement(l)?s.cloneElement(l,void 0,d):null})}return m.jsx(t,{...c,ref:r,children:a})});return n.displayName=`${e}.Slot`,n}function Gt(e){const t=s.forwardRef((n,o)=>{const{children:r,...a}=n;if(s.isValidElement(r)){const c=Zt(r),i=Yt(a,r.props);return r.type!==s.Fragment&&(i.ref=o?K(o,c):c),s.cloneElement(r,i)}return s.Children.count(r)>1?s.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var qt=Symbol("radix.slottable");function Xt(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===qt}function Yt(e,t){const n={...t};for(const o in t){const r=e[o],a=t[o];/^on[A-Z]/.test(o)?r&&a?n[o]=(...i)=>{const f=a(...i);return r(...i),f}:r&&(n[o]=r):o==="style"?n[o]={...r,...a}:o==="className"&&(n[o]=[r,a].filter(Boolean).join(" "))}return{...e,...n}}function Zt(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Jt=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],P=Jt.reduce((e,t)=>{const n=ze(`Primitive.${t}`),o=s.forwardRef((r,a)=>{const{asChild:c,...i}=r,f=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),m.jsx(f,{...i,ref:a})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function Qt(e,t){e&&ht.flushSync(()=>e.dispatchEvent(t))}function te(e){const t=s.useRef(e);return s.useEffect(()=>{t.current=e}),s.useMemo(()=>(...n)=>t.current?.(...n),[])}function en(e,t=globalThis?.document){const n=te(e);s.useEffect(()=>{const o=r=>{r.key==="Escape"&&n(r)};return t.addEventListener("keydown",o,{capture:!0}),()=>t.removeEventListener("keydown",o,{capture:!0})},[n,t])}var tn="DismissableLayer",be="dismissableLayer.update",nn="dismissableLayer.pointerDownOutside",rn="dismissableLayer.focusOutside",Te,He=s.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Ge=s.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:a,onInteractOutside:c,onDismiss:i,...f}=e,l=s.useContext(He),[d,p]=s.useState(null),y=d?.ownerDocument??globalThis?.document,[,h]=s.useState({}),R=H(t,E=>p(E)),x=Array.from(l.layers),[N]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),S=x.indexOf(N),k=d?x.indexOf(d):-1,A=l.layersWithOutsidePointerEventsDisabled.size>0,I=k>=S,T=an(E=>{const L=E.target,Z=[...l.branches].some(B=>B.contains(L));!I||Z||(r?.(E),c?.(E),E.defaultPrevented||i?.())},y),D=ln(E=>{const L=E.target;[...l.branches].some(B=>B.contains(L))||(a?.(E),c?.(E),E.defaultPrevented||i?.())},y);return en(E=>{k===l.layers.size-1&&(o?.(E),!E.defaultPrevented&&i&&(E.preventDefault(),i()))},y),s.useEffect(()=>{if(d)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(Te=y.body.style.pointerEvents,y.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(d)),l.layers.add(d),Me(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(y.body.style.pointerEvents=Te)}},[d,y,n,l]),s.useEffect(()=>()=>{d&&(l.layers.delete(d),l.layersWithOutsidePointerEventsDisabled.delete(d),Me())},[d,l]),s.useEffect(()=>{const E=()=>h({});return document.addEventListener(be,E),()=>document.removeEventListener(be,E)},[]),m.jsx(P.div,{...f,ref:R,style:{pointerEvents:A?I?"auto":"none":void 0,...e.style},onFocusCapture:W(e.onFocusCapture,D.onFocusCapture),onBlurCapture:W(e.onBlurCapture,D.onBlurCapture),onPointerDownCapture:W(e.onPointerDownCapture,T.onPointerDownCapture)})});Ge.displayName=tn;var on="DismissableLayerBranch",sn=s.forwardRef((e,t)=>{const n=s.useContext(He),o=s.useRef(null),r=H(t,o);return s.useEffect(()=>{const a=o.current;if(a)return n.branches.add(a),()=>{n.branches.delete(a)}},[n.branches]),m.jsx(P.div,{...e,ref:r})});sn.displayName=on;function an(e,t=globalThis?.document){const n=te(e),o=s.useRef(!1),r=s.useRef(()=>{});return s.useEffect(()=>{const a=i=>{if(i.target&&!o.current){let f=function(){qe(nn,n,l,{discrete:!0})};const l={originalEvent:i};i.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=f,t.addEventListener("click",r.current,{once:!0})):f()}else t.removeEventListener("click",r.current);o.current=!1},c=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(c),t.removeEventListener("pointerdown",a),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>o.current=!0}}function ln(e,t=globalThis?.document){const n=te(e),o=s.useRef(!1);return s.useEffect(()=>{const r=a=>{a.target&&!o.current&&qe(rn,n,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function Me(){const e=new CustomEvent(be);document.dispatchEvent(e)}function qe(e,t,n,{discrete:o}){const r=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),o?Qt(r,a):r.dispatchEvent(a)}var ve="focusScope.autoFocusOnMount",ge="focusScope.autoFocusOnUnmount",Fe={bubbles:!1,cancelable:!0},cn="FocusScope",Xe=s.forwardRef((e,t)=>{const{loop:n=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:a,...c}=e,[i,f]=s.useState(null),l=te(r),d=te(a),p=s.useRef(null),y=H(t,x=>f(x)),h=s.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;s.useEffect(()=>{if(o){let x=function(A){if(h.paused||!i)return;const I=A.target;i.contains(I)?p.current=I:$(p.current,{select:!0})},N=function(A){if(h.paused||!i)return;const I=A.relatedTarget;I!==null&&(i.contains(I)||$(p.current,{select:!0}))},S=function(A){if(document.activeElement===document.body)for(const T of A)T.removedNodes.length>0&&$(i)};document.addEventListener("focusin",x),document.addEventListener("focusout",N);const k=new MutationObserver(S);return i&&k.observe(i,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",N),k.disconnect()}}},[o,i,h.paused]),s.useEffect(()=>{if(i){Le.add(h);const x=document.activeElement;if(!i.contains(x)){const S=new CustomEvent(ve,Fe);i.addEventListener(ve,l),i.dispatchEvent(S),S.defaultPrevented||(un(vn(Ye(i)),{select:!0}),document.activeElement===x&&$(i))}return()=>{i.removeEventListener(ve,l),setTimeout(()=>{const S=new CustomEvent(ge,Fe);i.addEventListener(ge,d),i.dispatchEvent(S),S.defaultPrevented||$(x??document.body,{select:!0}),i.removeEventListener(ge,d),Le.remove(h)},0)}}},[i,l,d,h]);const R=s.useCallback(x=>{if(!n&&!o||h.paused)return;const N=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,S=document.activeElement;if(N&&S){const k=x.currentTarget,[A,I]=dn(k);A&&I?!x.shiftKey&&S===I?(x.preventDefault(),n&&$(A,{select:!0})):x.shiftKey&&S===A&&(x.preventDefault(),n&&$(I,{select:!0})):S===k&&x.preventDefault()}},[n,o,h.paused]);return m.jsx(P.div,{tabIndex:-1,...c,ref:y,onKeyDown:R})});Xe.displayName=cn;function un(e,{select:t=!1}={}){const n=document.activeElement;for(const o of e)if($(o,{select:t}),document.activeElement!==n)return}function dn(e){const t=Ye(e),n=je(t,e),o=je(t.reverse(),e);return[n,o]}function Ye(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function je(e,t){for(const n of e)if(!fn(n,{upTo:t}))return n}function fn(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function mn(e){return e instanceof HTMLInputElement&&"select"in e}function $(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&mn(e)&&t&&e.select()}}var Le=pn();function pn(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=$e(e,t),e.unshift(t)},remove(t){e=$e(e,t),e[0]?.resume()}}}function $e(e,t){const n=[...e],o=n.indexOf(t);return o!==-1&&n.splice(o,1),n}function vn(e){return e.filter(t=>t.tagName!=="A")}var gn="Portal",Ze=s.forwardRef((e,t)=>{const{container:n,...o}=e,[r,a]=s.useState(!1);ee(()=>a(!0),[]);const c=n||r&&globalThis?.document?.body;return c?Et.createPortal(m.jsx(P.div,{...o,ref:t}),c):null});Ze.displayName=gn;function hn(e,t){return s.useReducer((n,o)=>t[n][o]??n,e)}var ae=e=>{const{present:t,children:n}=e,o=En(t),r=typeof n=="function"?n({present:o.isPresent}):s.Children.only(n),a=H(o.ref,yn(r));return typeof n=="function"||o.isPresent?s.cloneElement(r,{ref:a}):null};ae.displayName="Presence";function En(e){const[t,n]=s.useState(),o=s.useRef(null),r=s.useRef(e),a=s.useRef("none"),c=e?"mounted":"unmounted",[i,f]=hn(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return s.useEffect(()=>{const l=oe(o.current);a.current=i==="mounted"?l:"none"},[i]),ee(()=>{const l=o.current,d=r.current;if(d!==e){const y=a.current,h=oe(l);e?f("MOUNT"):h==="none"||l?.display==="none"?f("UNMOUNT"):f(d&&y!==h?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,f]),ee(()=>{if(t){let l;const d=t.ownerDocument.defaultView??window,p=h=>{const x=oe(o.current).includes(CSS.escape(h.animationName));if(h.target===t&&x&&(f("ANIMATION_END"),!r.current)){const N=t.style.animationFillMode;t.style.animationFillMode="forwards",l=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=N)})}},y=h=>{h.target===t&&(a.current=oe(o.current))};return t.addEventListener("animationstart",y),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{d.clearTimeout(l),t.removeEventListener("animationstart",y),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else f("ANIMATION_END")},[t,f]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:s.useCallback(l=>{o.current=l?getComputedStyle(l):null,n(l)},[])}}function oe(e){return e?.animationName||"none"}function yn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var he=0;function bn(){s.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??We()),document.body.insertAdjacentElement("beforeend",e[1]??We()),he++,()=>{he===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),he--}},[])}function We(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ie="Dialog",[Je]=$t(ie),[xn,F]=Je(ie),Qe=e=>{const{__scopeDialog:t,children:n,open:o,defaultOpen:r,onOpenChange:a,modal:c=!0}=e,i=s.useRef(null),f=s.useRef(null),[l,d]=Vt({prop:o,defaultProp:r??!1,onChange:a,caller:ie});return m.jsx(xn,{scope:t,triggerRef:i,contentRef:f,contentId:j(),titleId:j(),descriptionId:j(),open:l,onOpenChange:d,onOpenToggle:s.useCallback(()=>d(p=>!p),[d]),modal:c,children:n})};Qe.displayName=ie;var et="DialogTrigger",Cn=s.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=F(et,n),a=H(t,r.triggerRef);return m.jsx(P.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":we(r.open),...o,ref:a,onClick:W(e.onClick,r.onOpenToggle)})});Cn.displayName=et;var Ce="DialogPortal",[Dn,tt]=Je(Ce,{forceMount:void 0}),nt=e=>{const{__scopeDialog:t,forceMount:n,children:o,container:r}=e,a=F(Ce,t);return m.jsx(Dn,{scope:t,forceMount:n,children:s.Children.map(o,c=>m.jsx(ae,{present:n||a.open,children:m.jsx(Ze,{asChild:!0,container:r,children:c})}))})};nt.displayName=Ce;var se="DialogOverlay",rt=s.forwardRef((e,t)=>{const n=tt(se,e.__scopeDialog),{forceMount:o=n.forceMount,...r}=e,a=F(se,e.__scopeDialog);return a.modal?m.jsx(ae,{present:o||a.open,children:m.jsx(Rn,{...r,ref:t})}):null});rt.displayName=se;var wn=ze("DialogOverlay.RemoveScroll"),Rn=s.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=F(se,n);return m.jsx(yt,{as:wn,allowPinchZoom:!0,shards:[r.contentRef],children:m.jsx(P.div,{"data-state":we(r.open),...o,ref:t,style:{pointerEvents:"auto",...o.style}})})}),V="DialogContent",ot=s.forwardRef((e,t)=>{const n=tt(V,e.__scopeDialog),{forceMount:o=n.forceMount,...r}=e,a=F(V,e.__scopeDialog);return m.jsx(ae,{present:o||a.open,children:a.modal?m.jsx(Nn,{...r,ref:t}):m.jsx(Sn,{...r,ref:t})})});ot.displayName=V;var Nn=s.forwardRef((e,t)=>{const n=F(V,e.__scopeDialog),o=s.useRef(null),r=H(t,n.contentRef,o);return s.useEffect(()=>{const a=o.current;if(a)return bt(a)},[]),m.jsx(st,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:W(e.onCloseAutoFocus,a=>{a.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:W(e.onPointerDownOutside,a=>{const c=a.detail.originalEvent,i=c.button===0&&c.ctrlKey===!0;(c.button===2||i)&&a.preventDefault()}),onFocusOutside:W(e.onFocusOutside,a=>a.preventDefault())})}),Sn=s.forwardRef((e,t)=>{const n=F(V,e.__scopeDialog),o=s.useRef(!1),r=s.useRef(!1);return m.jsx(st,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{e.onCloseAutoFocus?.(a),a.defaultPrevented||(o.current||n.triggerRef.current?.focus(),a.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:a=>{e.onInteractOutside?.(a),a.defaultPrevented||(o.current=!0,a.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const c=a.target;n.triggerRef.current?.contains(c)&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&r.current&&a.preventDefault()}})}),st=s.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:a,...c}=e,i=F(V,n),f=s.useRef(null),l=H(t,f);return bn(),m.jsxs(m.Fragment,{children:[m.jsx(Xe,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:a,children:m.jsx(Ge,{role:"dialog",id:i.contentId,"aria-describedby":i.descriptionId,"aria-labelledby":i.titleId,"data-state":we(i.open),...c,ref:l,onDismiss:()=>i.onOpenChange(!1)})}),m.jsxs(m.Fragment,{children:[m.jsx(An,{titleId:i.titleId}),m.jsx(kn,{contentRef:f,descriptionId:i.descriptionId})]})]})}),De="DialogTitle",In=s.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=F(De,n);return m.jsx(P.h2,{id:r.titleId,...o,ref:t})});In.displayName=De;var at="DialogDescription",Pn=s.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=F(at,n);return m.jsx(P.p,{id:r.descriptionId,...o,ref:t})});Pn.displayName=at;var it="DialogClose",On=s.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=F(it,n);return m.jsx(P.button,{type:"button",...o,ref:t,onClick:W(e.onClick,()=>r.onOpenChange(!1))})});On.displayName=it;function we(e){return e?"open":"closed"}var lt="DialogTitleWarning",[fr,ct]=Lt(lt,{contentName:V,titleName:De,docsSlug:"dialog"}),An=({titleId:e})=>{const t=ct(lt),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
2
|
+
|
|
3
|
+
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
4
|
+
|
|
5
|
+
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return s.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},_n="DialogDescriptionWarning",kn=({contentRef:e,descriptionId:t})=>{const o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${ct(_n).contentName}}.`;return s.useEffect(()=>{const r=e.current?.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(o))},[o,e,t]),null},Tn=Qe,Mn=nt,Fn=rt,jn=ot,Q='[cmdk-group=""]',Ee='[cmdk-group-items=""]',Ln='[cmdk-group-heading=""]',ut='[cmdk-item=""]',Ue=`${ut}:not([aria-disabled="true"])`,xe="cmdk-item-select",q="data-value",$n=(e,t,n)=>jt(e,t,n),dt=s.createContext(void 0),ne=()=>s.useContext(dt),ft=s.createContext(void 0),Re=()=>s.useContext(ft),mt=s.createContext(void 0),pt=s.forwardRef((e,t)=>{let n=X(()=>{var u,g;return{search:"",value:(g=(u=e.value)!=null?u:e.defaultValue)!=null?g:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),o=X(()=>new Set),r=X(()=>new Map),a=X(()=>new Map),c=X(()=>new Set),i=vt(e),{label:f,children:l,value:d,onValueChange:p,filter:y,shouldFilter:h,loop:R,disablePointerSelection:x=!1,vimBindings:N=!0,...S}=e,k=j(),A=j(),I=j(),T=s.useRef(null),D=Yn();z(()=>{if(d!==void 0){let u=d.trim();n.current.value=u,E.emit()}},[d]),z(()=>{D(6,Ne)},[]);let E=s.useMemo(()=>({subscribe:u=>(c.current.add(u),()=>c.current.delete(u)),snapshot:()=>n.current,setState:(u,g,b)=>{var v,C,w,_;if(!Object.is(n.current[u],g)){if(n.current[u]=g,u==="search")ue(),B(),D(1,ce);else if(u==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let O=document.getElementById(I);O?O.focus():(v=document.getElementById(k))==null||v.focus()}if(D(7,()=>{var O;n.current.selectedItemId=(O=G())==null?void 0:O.id,E.emit()}),b||D(5,Ne),((C=i.current)==null?void 0:C.value)!==void 0){let O=g??"";(_=(w=i.current).onValueChange)==null||_.call(w,O);return}}E.emit()}},emit:()=>{c.current.forEach(u=>u())}}),[]),L=s.useMemo(()=>({value:(u,g,b)=>{var v;g!==((v=a.current.get(u))==null?void 0:v.value)&&(a.current.set(u,{value:g,keywords:b}),n.current.filtered.items.set(u,Z(g,b)),D(2,()=>{B(),E.emit()}))},item:(u,g)=>(o.current.add(u),g&&(r.current.has(g)?r.current.get(g).add(u):r.current.set(g,new Set([u]))),D(3,()=>{ue(),B(),n.current.value||ce(),E.emit()}),()=>{a.current.delete(u),o.current.delete(u),n.current.filtered.items.delete(u);let b=G();D(4,()=>{ue(),b?.getAttribute("id")===u&&ce(),E.emit()})}),group:u=>(r.current.has(u)||r.current.set(u,new Set),()=>{a.current.delete(u),r.current.delete(u)}),filter:()=>i.current.shouldFilter,label:f||e["aria-label"],getDisablePointerSelection:()=>i.current.disablePointerSelection,listId:k,inputId:I,labelId:A,listInnerRef:T}),[]);function Z(u,g){var b,v;let C=(v=(b=i.current)==null?void 0:b.filter)!=null?v:$n;return u?C(u,n.current.search,g):0}function B(){if(!n.current.search||i.current.shouldFilter===!1)return;let u=n.current.filtered.items,g=[];n.current.filtered.groups.forEach(v=>{let C=r.current.get(v),w=0;C.forEach(_=>{let O=u.get(_);w=Math.max(O,w)}),g.push([v,w])});let b=T.current;J().sort((v,C)=>{var w,_;let O=v.getAttribute("id"),re=C.getAttribute("id");return((w=u.get(re))!=null?w:0)-((_=u.get(O))!=null?_:0)}).forEach(v=>{let C=v.closest(Ee);C?C.appendChild(v.parentElement===C?v:v.closest(`${Ee} > *`)):b.appendChild(v.parentElement===b?v:v.closest(`${Ee} > *`))}),g.sort((v,C)=>C[1]-v[1]).forEach(v=>{var C;let w=(C=T.current)==null?void 0:C.querySelector(`${Q}[${q}="${encodeURIComponent(v[0])}"]`);w?.parentElement.appendChild(w)})}function ce(){let u=J().find(b=>b.getAttribute("aria-disabled")!=="true"),g=u?.getAttribute(q);E.setState("value",g||void 0)}function ue(){var u,g,b,v;if(!n.current.search||i.current.shouldFilter===!1){n.current.filtered.count=o.current.size;return}n.current.filtered.groups=new Set;let C=0;for(let w of o.current){let _=(g=(u=a.current.get(w))==null?void 0:u.value)!=null?g:"",O=(v=(b=a.current.get(w))==null?void 0:b.keywords)!=null?v:[],re=Z(_,O);n.current.filtered.items.set(w,re),re>0&&C++}for(let[w,_]of r.current)for(let O of _)if(n.current.filtered.items.get(O)>0){n.current.filtered.groups.add(w);break}n.current.filtered.count=C}function Ne(){var u,g,b;let v=G();v&&(((u=v.parentElement)==null?void 0:u.firstChild)===v&&((b=(g=v.closest(Q))==null?void 0:g.querySelector(Ln))==null||b.scrollIntoView({block:"nearest"})),v.scrollIntoView({block:"nearest"}))}function G(){var u;return(u=T.current)==null?void 0:u.querySelector(`${ut}[aria-selected="true"]`)}function J(){var u;return Array.from(((u=T.current)==null?void 0:u.querySelectorAll(Ue))||[])}function de(u){let g=J()[u];g&&E.setState("value",g.getAttribute(q))}function fe(u){var g;let b=G(),v=J(),C=v.findIndex(_=>_===b),w=v[C+u];(g=i.current)!=null&&g.loop&&(w=C+u<0?v[v.length-1]:C+u===v.length?v[0]:v[C+u]),w&&E.setState("value",w.getAttribute(q))}function Se(u){let g=G(),b=g?.closest(Q),v;for(;b&&!v;)b=u>0?qn(b,Q):Xn(b,Q),v=b?.querySelector(Ue);v?E.setState("value",v.getAttribute(q)):fe(u)}let Ie=()=>de(J().length-1),Pe=u=>{u.preventDefault(),u.metaKey?Ie():u.altKey?Se(1):fe(1)},Oe=u=>{u.preventDefault(),u.metaKey?de(0):u.altKey?Se(-1):fe(-1)};return s.createElement(P.div,{ref:t,tabIndex:-1,...S,"cmdk-root":"",onKeyDown:u=>{var g;(g=S.onKeyDown)==null||g.call(S,u);let b=u.nativeEvent.isComposing||u.keyCode===229;if(!(u.defaultPrevented||b))switch(u.key){case"n":case"j":{N&&u.ctrlKey&&Pe(u);break}case"ArrowDown":{Pe(u);break}case"p":case"k":{N&&u.ctrlKey&&Oe(u);break}case"ArrowUp":{Oe(u);break}case"Home":{u.preventDefault(),de(0);break}case"End":{u.preventDefault(),Ie();break}case"Enter":{u.preventDefault();let v=G();if(v){let C=new Event(xe);v.dispatchEvent(C)}}}}},s.createElement("label",{"cmdk-label":"",htmlFor:L.inputId,id:L.labelId,style:Jn},f),le(e,u=>s.createElement(ft.Provider,{value:E},s.createElement(dt.Provider,{value:L},u))))}),Wn=s.forwardRef((e,t)=>{var n,o;let r=j(),a=s.useRef(null),c=s.useContext(mt),i=ne(),f=vt(e),l=(o=(n=f.current)==null?void 0:n.forceMount)!=null?o:c?.forceMount;z(()=>{if(!l)return i.item(r,c?.id)},[l]);let d=gt(r,a,[e.value,e.children,a],e.keywords),p=Re(),y=U(D=>D.value&&D.value===d.current),h=U(D=>l||i.filter()===!1?!0:D.search?D.filtered.items.get(r)>0:!0);s.useEffect(()=>{let D=a.current;if(!(!D||e.disabled))return D.addEventListener(xe,R),()=>D.removeEventListener(xe,R)},[h,e.onSelect,e.disabled]);function R(){var D,E;x(),(E=(D=f.current).onSelect)==null||E.call(D,d.current)}function x(){p.setState("value",d.current,!0)}if(!h)return null;let{disabled:N,value:S,onSelect:k,forceMount:A,keywords:I,...T}=e;return s.createElement(P.div,{ref:K(a,t),...T,id:r,"cmdk-item":"",role:"option","aria-disabled":!!N,"aria-selected":!!y,"data-disabled":!!N,"data-selected":!!y,onPointerMove:N||i.getDisablePointerSelection()?void 0:x,onClick:N?void 0:R},e.children)}),Un=s.forwardRef((e,t)=>{let{heading:n,children:o,forceMount:r,...a}=e,c=j(),i=s.useRef(null),f=s.useRef(null),l=j(),d=ne(),p=U(h=>r||d.filter()===!1?!0:h.search?h.filtered.groups.has(c):!0);z(()=>d.group(c),[]),gt(c,i,[e.value,e.heading,f]);let y=s.useMemo(()=>({id:c,forceMount:r}),[r]);return s.createElement(P.div,{ref:K(i,t),...a,"cmdk-group":"",role:"presentation",hidden:p?void 0:!0},n&&s.createElement("div",{ref:f,"cmdk-group-heading":"","aria-hidden":!0,id:l},n),le(e,h=>s.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?l:void 0},s.createElement(mt.Provider,{value:y},h))))}),Bn=s.forwardRef((e,t)=>{let{alwaysRender:n,...o}=e,r=s.useRef(null),a=U(c=>!c.search);return!n&&!a?null:s.createElement(P.div,{ref:K(r,t),...o,"cmdk-separator":"",role:"separator"})}),Kn=s.forwardRef((e,t)=>{let{onValueChange:n,...o}=e,r=e.value!=null,a=Re(),c=U(l=>l.search),i=U(l=>l.selectedItemId),f=ne();return s.useEffect(()=>{e.value!=null&&a.setState("search",e.value)},[e.value]),s.createElement(P.input,{ref:t,...o,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":f.listId,"aria-labelledby":f.labelId,"aria-activedescendant":i,id:f.inputId,type:"text",value:r?e.value:c,onChange:l=>{r||a.setState("search",l.target.value),n?.(l.target.value)}})}),Vn=s.forwardRef((e,t)=>{let{children:n,label:o="Suggestions",...r}=e,a=s.useRef(null),c=s.useRef(null),i=U(l=>l.selectedItemId),f=ne();return s.useEffect(()=>{if(c.current&&a.current){let l=c.current,d=a.current,p,y=new ResizeObserver(()=>{p=requestAnimationFrame(()=>{let h=l.offsetHeight;d.style.setProperty("--cmdk-list-height",h.toFixed(1)+"px")})});return y.observe(l),()=>{cancelAnimationFrame(p),y.unobserve(l)}}},[]),s.createElement(P.div,{ref:K(a,t),...r,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":i,"aria-label":o,id:f.listId},le(e,l=>s.createElement("div",{ref:K(c,f.listInnerRef),"cmdk-list-sizer":""},l)))}),zn=s.forwardRef((e,t)=>{let{open:n,onOpenChange:o,overlayClassName:r,contentClassName:a,container:c,...i}=e;return s.createElement(Tn,{open:n,onOpenChange:o},s.createElement(Mn,{container:c},s.createElement(Fn,{"cmdk-overlay":"",className:r}),s.createElement(jn,{"aria-label":e.label,"cmdk-dialog":"",className:a},s.createElement(pt,{ref:t,...i}))))}),Hn=s.forwardRef((e,t)=>U(n=>n.filtered.count===0)?s.createElement(P.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Gn=s.forwardRef((e,t)=>{let{progress:n,children:o,label:r="Loading...",...a}=e;return s.createElement(P.div,{ref:t,...a,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":r},le(e,c=>s.createElement("div",{"aria-hidden":!0},c)))}),Y=Object.assign(pt,{List:Vn,Item:Wn,Input:Kn,Group:Un,Separator:Bn,Dialog:zn,Empty:Hn,Loading:Gn});function qn(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Xn(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function vt(e){let t=s.useRef(e);return z(()=>{t.current=e}),t}var z=typeof window>"u"?s.useEffect:s.useLayoutEffect;function X(e){let t=s.useRef();return t.current===void 0&&(t.current=e()),t}function U(e){let t=Re(),n=()=>e(t.snapshot());return s.useSyncExternalStore(t.subscribe,n,n)}function gt(e,t,n,o=[]){let r=s.useRef(),a=ne();return z(()=>{var c;let i=(()=>{var l;for(let d of n){if(typeof d=="string")return d.trim();if(typeof d=="object"&&"current"in d)return d.current?(l=d.current.textContent)==null?void 0:l.trim():r.current}})(),f=o.map(l=>l.trim());a.value(e,i,f),(c=t.current)==null||c.setAttribute(q,i),r.current=i}),r}var Yn=()=>{let[e,t]=s.useState(),n=X(()=>new Map);return z(()=>{n.current.forEach(o=>o()),n.current=new Map},[e]),(o,r)=>{n.current.set(o,r),t({})}};function Zn(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function le({asChild:e,children:t},n){return e&&s.isValidElement(t)?s.cloneElement(Zn(t),{ref:t.ref},n(t.props.children)):n(t)}var Jn={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function Qn({...e}){return m.jsx(xt,{"data-slot":"dialog",...e})}function mr({...e}){return m.jsx(It,{"data-slot":"dialog-trigger",...e})}function er({...e}){return m.jsx(Nt,{"data-slot":"dialog-portal",...e})}function tr({className:e,...t}){return m.jsx(St,{"data-slot":"dialog-overlay",className:M(`data-[state=open]:animate-in data-[state=closed]:animate-out
|
|
6
|
+
data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0
|
|
7
|
+
z-50 bg-black/50`,e),...t})}function nr({className:e,children:t,showCloseButton:n=!0,...o}){return m.jsxs(er,{"data-slot":"dialog-portal",children:[m.jsx(tr,{}),m.jsxs(wt,{"data-slot":"dialog-content",className:M(`bg-background data-[state=open]:animate-in
|
|
8
|
+
data-[state=closed]:animate-out data-[state=closed]:fade-out-0
|
|
9
|
+
data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95
|
|
10
|
+
data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid
|
|
11
|
+
w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%]
|
|
12
|
+
gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none
|
|
13
|
+
sm:max-w-lg`,e),...o,children:[t,n&&m.jsxs(Rt,{"data-slot":"dialog-close",className:`ring-offset-background focus:ring-ring
|
|
14
|
+
data-[state=open]:bg-accent
|
|
15
|
+
data-[state=open]:text-muted-foreground absolute top-4 right-4
|
|
16
|
+
rounded-xs opacity-70 transition-opacity hover:opacity-100
|
|
17
|
+
focus:ring-2 focus:ring-offset-2 focus:outline-hidden
|
|
18
|
+
disabled:pointer-events-none [&_svg]:pointer-events-none
|
|
19
|
+
[&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,children:[m.jsx(Ke.XIcon,{}),m.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function rr({className:e,...t}){return m.jsx("div",{"data-slot":"dialog-header",className:M("flex flex-col gap-2 text-center sm:text-left",e),...t})}function or({className:e,...t}){return m.jsx(Ct,{"data-slot":"dialog-title",className:M("text-lg leading-none font-semibold",e),...t})}function sr({className:e,...t}){return m.jsx(Dt,{"data-slot":"dialog-description",className:M("text-muted-foreground text-sm",e),...t})}function ar({className:e,...t}){return m.jsx(Y,{"data-slot":"command",className:M(`bg-popover text-popover-foreground flex h-full w-full flex-col
|
|
20
|
+
overflow-hidden rounded-md`,e),...t})}function pr({title:e="Command Palette",description:t="Search for a command to run...",children:n,className:o,showCloseButton:r=!0,...a}){return m.jsxs(Qn,{...a,children:[m.jsxs(rr,{className:"sr-only",children:[m.jsx(or,{children:e}),m.jsx(sr,{children:t})]}),m.jsx(nr,{className:M("overflow-hidden p-0",o),showCloseButton:r,children:m.jsx(ar,{className:`[&_[cmdk-group-heading]]:text-muted-foreground
|
|
21
|
+
**:data-[slot=command-input-wrapper]:h-12
|
|
22
|
+
[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium
|
|
23
|
+
[&_[cmdk-group]]:px-2
|
|
24
|
+
[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0
|
|
25
|
+
[&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5
|
|
26
|
+
[&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3
|
|
27
|
+
[&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5`,children:n})})]})}function vr({className:e,...t}){return m.jsxs("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[m.jsx(Ke.SearchIcon,{className:"size-4 shrink-0 opacity-50"}),m.jsx(Y.Input,{"data-slot":"command-input",className:M(`placeholder:text-muted-foreground flex h-10 w-full rounded-md
|
|
28
|
+
bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed
|
|
29
|
+
disabled:opacity-50`,e),...t})]})}function gr({className:e,...t}){return m.jsx(Y.List,{"data-slot":"command-list",className:M("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",e),...t})}function hr({...e}){return m.jsx(Y.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}function Er({className:e,...t}){return m.jsx(Y.Group,{"data-slot":"command-group",className:M(`text-foreground [&_[cmdk-group-heading]]:text-muted-foreground
|
|
30
|
+
overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2
|
|
31
|
+
[&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs
|
|
32
|
+
[&_[cmdk-group-heading]]:font-medium`,e),...t})}function yr({className:e,...t}){return m.jsx(Y.Item,{"data-slot":"command-item",className:M(`data-[selected=true]:bg-accent
|
|
33
|
+
data-[selected=true]:text-accent-foreground
|
|
34
|
+
[&_svg:not([class*='text-'])]:text-muted-foreground relative flex
|
|
35
|
+
cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm
|
|
36
|
+
outline-hidden select-none data-[disabled=true]:pointer-events-none
|
|
37
|
+
data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none
|
|
38
|
+
[&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...t})}export{pr as C,Qn as D,vr as a,gr as b,hr as c,Er as d,yr as e,ar as f,mr as g,nr as h,rr as i,or as j,sr as k};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as p,c as a}from"./react-B9jn2M18.js";import{l as d,t as l}from"./view-context-gyDl_p2V.js";import{B as x}from"./button-C6arH7zt.js";const f=async e=>{if(navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.left="-9999px",t.style.top="0",document.body.appendChild(t),t.select();try{return document.execCommand("copy")}finally{document.body.removeChild(t)}},C=(e,t={})=>{const{copiedMs:o=1400}=t,[c,i]=a.useState(!1),s=a.useRef(void 0);a.useEffect(()=>()=>window.clearTimeout(s.current),[]);const n=a.useCallback(async()=>{const u=typeof e=="function"?await e():e,r=await f(u);return window.clearTimeout(s.current),i(r),r&&(s.current=window.setTimeout(()=>i(!1),o)),r},[e,o]);return{copied:c,copy:n}};function T({className:e,context:t,label:o="Copy context",notify:c=!0,onCopied:i,onFailed:s,size:n="icon-xs",variant:u="ghost"}){const{copied:r,copy:m}=C(t);return p.jsx(x,{type:"button",variant:u,size:n,className:e,"aria-label":o,title:o,onClick:()=>{m().then(y=>{y?(c&&l.success("Copied"),i?.()):(c&&l.error("Could not copy"),s?.())})},children:r?p.jsx(d.Check,{className:"size-3.5 text-emerald-600"}):p.jsx(d.Copy,{className:"size-3.5"})})}export{T as C,f as c};
|