@agent-native/core 0.131.5 → 0.131.6
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/corpus/README.md +3 -3
- package/corpus/core/CHANGELOG.md +63 -0
- package/corpus/core/docs/content/agent-native-toolkit.mdx +13 -6
- package/corpus/core/docs/content/cloneable-saas.mdx +5 -5
- package/corpus/core/docs/content/creating-templates.mdx +9 -0
- package/corpus/core/docs/content/deployment.mdx +14 -10
- package/corpus/core/docs/content/doctor.mdx +8 -1
- package/corpus/core/docs/content/drop-in-agent.mdx +1 -1
- package/corpus/core/docs/content/extensions.mdx +18 -18
- package/corpus/core/docs/content/faq.mdx +4 -4
- package/corpus/core/docs/content/key-concepts.mdx +30 -21
- package/corpus/core/docs/content/template-brain-developers.mdx +4 -1
- package/corpus/core/docs/content/template-mail-developers.mdx +4 -1
- package/corpus/core/docs/content/what-is-agent-native.mdx +6 -6
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/a2a/client.ts +449 -66
- package/corpus/core/src/a2a/correlation.ts +31 -0
- package/corpus/core/src/a2a/types.ts +4 -0
- package/corpus/core/src/action.ts +3 -0
- package/corpus/core/src/agent/engine/registry.ts +45 -5
- package/corpus/core/src/agent/production-agent.ts +151 -18
- package/corpus/core/src/agent/run-loop-with-resume.ts +190 -3
- package/corpus/core/src/agent/run-manager.ts +117 -41
- package/corpus/core/src/agent/thread-debug-history.ts +86 -0
- package/corpus/core/src/agent/types.ts +3 -1
- package/corpus/core/src/cli/create.ts +11 -1
- package/corpus/core/src/cli/templates-meta.ts +2 -2
- package/corpus/core/src/client/agent-chat-adapter.ts +91 -13
- package/corpus/core/src/client/resources/McpIntegrationDialog.tsx +11 -9
- package/corpus/core/src/client/sse-event-processor.ts +17 -3
- package/corpus/core/src/db/client.ts +57 -17
- package/corpus/core/src/integrations/adapters/slack.ts +8 -3
- package/corpus/core/src/localization/default-messages.ts +44 -0
- package/corpus/core/src/observability/traces.ts +78 -5
- package/corpus/core/src/scripts/call-agent.ts +290 -9
- package/corpus/core/src/scripts/describe-workspace-apps.ts +2 -2
- package/corpus/core/src/secrets/crypto.ts +126 -34
- package/corpus/core/src/secrets/storage.ts +61 -25
- package/corpus/core/src/server/agent-capabilities.ts +1 -1
- package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +111 -7
- package/corpus/core/src/server/agent-chat/context-tools.ts +2 -0
- package/corpus/core/src/server/agent-chat/plugin-options.ts +34 -1
- package/corpus/core/src/server/agent-chat/prompt-resources.ts +1 -1
- package/corpus/core/src/server/agent-chat-plugin.ts +91 -59
- package/corpus/core/src/templates/default/.agents/skills/secrets/SKILL.md +14 -7
- package/corpus/core/src/templates/headless/.agents/skills/secrets/SKILL.md +14 -7
- package/corpus/core/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +18 -7
- package/corpus/core/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +15 -14
- package/corpus/core/src/templates/workspace-core/.agents/skills/secrets/SKILL.md +14 -7
- package/corpus/core/src/vite/client.ts +1 -0
- package/corpus/templates/analytics/.agents/skills/dashboard-ops/SKILL.md +5 -4
- package/corpus/templates/analytics/.agents/skills/gong/SKILL.md +6 -4
- package/corpus/templates/analytics/AGENTS.md +6 -4
- package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +4 -3
- package/corpus/templates/analytics/changelog/2026-07-30-scheduled-dashboard-emails-complete-every-panel-without-pool.md +6 -0
- package/corpus/templates/analytics/scripts/emit-netlify-dashboard-report-cron.ts +28 -1
- package/corpus/templates/analytics/server/jobs/dashboard-report.ts +18 -11
- package/corpus/templates/analytics/server/lib/analytics-connector-catalog.ts +4 -4
- package/corpus/templates/analytics/server/lib/canonical-first-party-dashboard-repair.ts +9 -5
- package/corpus/templates/analytics/server/lib/dashboard-panel-query.ts +6 -2
- package/corpus/templates/analytics/server/lib/dashboard-panel-source-resolver.ts +11 -4
- package/corpus/templates/analytics/server/lib/dashboard-report-render.ts +49 -31
- package/corpus/templates/analytics/server/lib/first-party-analytics.ts +16 -8
- package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +9 -3
- package/corpus/templates/analytics/server/lib/production-serverless-runtime.ts +11 -0
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +3 -2
- package/corpus/templates/analytics/server/plugins/analytics-alert-jobs.ts +2 -1
- package/corpus/templates/analytics/server/plugins/dashboard-report-jobs.ts +2 -1
- package/corpus/templates/analytics/server/plugins/uptime-monitor-jobs.ts +1 -12
- package/corpus/templates/brain/.agents/skills/brain/RUNBOOK.md +54 -6
- package/corpus/templates/brain/.agents/skills/brain/SKILL.md +20 -9
- package/corpus/templates/brain/.agents/skills/ingestion-and-connectors/SKILL.md +33 -1
- package/corpus/templates/brain/AGENTS.md +3 -1
- package/corpus/templates/brain/README.md +4 -1
- package/corpus/templates/brain/actions/_schemas.ts +30 -8
- package/corpus/templates/brain/actions/ask-brain.ts +124 -14
- package/corpus/templates/brain/actions/create-source.ts +18 -2
- package/corpus/templates/brain/actions/enqueue-captures-distillation.ts +8 -123
- package/corpus/templates/brain/actions/enqueue-distillation.ts +6 -127
- package/corpus/templates/brain/actions/import-capture.ts +17 -5
- package/corpus/templates/brain/actions/import-transcript.ts +17 -5
- package/corpus/templates/brain/actions/update-source.ts +25 -5
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +1 -1
- package/corpus/templates/brain/changelog/2026-07-30-blessed-resources-can-feed-cited-company-answers.md +6 -0
- package/corpus/templates/brain/changelog/2026-07-30-the-left-sidebar-no-longer-shows-a-blank-organization-placeh.md +6 -0
- package/corpus/templates/brain/server/lib/brain.ts +49 -19
- package/corpus/templates/brain/server/lib/distillation-queue.ts +147 -0
- package/corpus/templates/brain/server/lib/source-policy.ts +264 -0
- package/corpus/templates/brain/server/plugins/agent-chat.ts +3 -2
- package/corpus/templates/brain/server/routes/api/_agent-native/brain/ingest.post.ts +116 -19
- package/corpus/templates/clips/app/components/meetings/google-oauth-identity-notice.tsx +51 -0
- package/corpus/templates/clips/app/i18n/en-US.ts +4 -0
- package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +3 -1
- package/corpus/templates/clips/changelog/2026-07-30-google-calendar-warning.md +6 -0
- package/corpus/templates/content/app/components/editor/VisualEditor.tsx +72 -8
- package/corpus/templates/content/changelog/2026-07-30-the-slash-command-hint-now-stays-on-only-the-active-empty-li.md +6 -0
- package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +506 -11
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +148 -17
- package/corpus/templates/design/app/components/design/canvas-interactions/design-canvas-interactions.ts +357 -0
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +7 -466
- package/corpus/templates/design/app/components/design/inspector/scrub-input-utils.ts +15 -311
- package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +19 -997
- package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +8 -1216
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +31 -38
- package/corpus/templates/design/package.json +0 -1
- package/corpus/templates/dispatch/AGENTS.md +8 -0
- package/corpus/templates/dispatch/DEVELOPING.md +29 -0
- package/corpus/templates/dispatch/actions/view-screen.ts +34 -2
- package/corpus/templates/dispatch/app/i18n-data.ts +457 -0
- package/corpus/templates/dispatch/changelog/2026-07-30-delegated-dispatch-work-continues-reliably-in-the-background.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-07-30-find-failed-runs-across-apps.md +6 -0
- package/corpus/templates/dispatch/netlify.toml +3 -0
- package/corpus/templates/slides/.agents/skills/analytics-data-for-decks/SKILL.md +8 -12
- package/corpus/templates/slides/AGENTS.md +4 -4
- package/corpus/templates/slides/actions/duplicate-deck.ts +19 -4
- package/corpus/templates/slides/app/components/deck/DeckCard.tsx +2 -10
- package/corpus/templates/slides/app/components/deck/MermaidRenderer.tsx +12 -1
- package/corpus/templates/slides/app/components/deck/SlideRenderer.tsx +30 -13
- package/corpus/templates/slides/app/components/editor/DeckEditorSkeleton.tsx +35 -0
- package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +63 -56
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +21 -76
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +1110 -292
- package/corpus/templates/slides/app/components/editor/SlideOverflowWarning.tsx +53 -0
- package/corpus/templates/slides/app/components/editor/SlideStyleInspector.tsx +235 -18
- package/corpus/templates/slides/app/components/editor/SpeakerNotesPanel.tsx +4 -1
- package/corpus/templates/slides/app/components/editor/canvas-interactions/index.ts +11 -0
- package/corpus/templates/slides/app/components/editor/canvas-interactions/slides-canvas-adapter.ts +129 -0
- package/corpus/templates/slides/app/components/editor/selection-overlay-measurement.ts +70 -0
- package/corpus/templates/slides/app/components/editor/slide-object-interactions.ts +519 -65
- package/corpus/templates/slides/app/components/visual-editor/CanvasCommentPins.tsx +36 -426
- package/corpus/templates/slides/app/components/visual-editor/DrawOverlay.tsx +19 -458
- package/corpus/templates/slides/app/context/DeckContext.tsx +179 -72
- package/corpus/templates/slides/app/global.css +105 -0
- package/corpus/templates/slides/app/i18n/en-US.ts +8 -0
- package/corpus/templates/slides/app/lib/deck-editor-loading.ts +26 -0
- package/corpus/templates/slides/app/lib/mermaid-blocks.ts +27 -0
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +71 -38
- package/corpus/templates/slides/app/pages/Index.tsx +98 -41
- package/corpus/templates/slides/changelog/2026-07-30-deck-loading-no-longer-flashes-an-unavailable-message.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-30-duplicating-a-deck-from-the-deck-list-now-opens-the-copy-imm.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-30-layout-overflow-warning-is-readable-and-dismissible.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-30-shared-canvas-annotations.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-30-slide-objects-can-be-moved-as-a-group-copied-and-pasted-with.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-30-slide-text-editing-and-object-controls-now-match-google-slides.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-30-style-panel-now-scrolls-with-speaker-notes-open-shows-the-sl.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-30-top-toolbar-controls-now-use-consistent-sizing-with-undo-and.md +6 -0
- package/corpus/templates/slides/netlify.toml +3 -1
- package/corpus/templates/slides/package.json +0 -1
- package/corpus/templates/slides/server/lib/chat-attachments.ts +18 -0
- package/corpus/templates/slides/server/plugins/agent-chat.ts +5 -0
- package/corpus/templates/slides/vite.config.ts +0 -1
- package/corpus/toolkit/CHANGELOG.md +13 -0
- package/corpus/toolkit/README.md +19 -0
- package/corpus/toolkit/agent-native.eject.json +38 -0
- package/corpus/toolkit/package.json +29 -1
- package/corpus/toolkit/src/canvas-annotations/CanvasCommentPins.tsx +861 -0
- package/corpus/toolkit/src/canvas-annotations/DrawOverlay.tsx +1233 -0
- package/corpus/toolkit/src/canvas-annotations/index.ts +15 -0
- package/corpus/toolkit/src/canvas-annotations/types.ts +14 -0
- package/corpus/toolkit/src/canvas-interactions/canvas-interactions.ts +933 -0
- package/corpus/toolkit/src/canvas-interactions/index.ts +67 -0
- package/corpus/toolkit/src/design-tweaks/scrub-input-utils.ts +311 -0
- package/corpus/toolkit/src/design-tweaks/scrub-input.tsx +491 -0
- package/corpus/toolkit/src/design-tweaks/visual-style-controls.tsx +26 -171
- package/corpus/toolkit/src/index.ts +1 -0
- package/dist/a2a/client.d.ts +23 -0
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +309 -44
- package/dist/a2a/client.js.map +1 -1
- package/dist/a2a/correlation.d.ts +1 -0
- package/dist/a2a/correlation.d.ts.map +1 -1
- package/dist/a2a/correlation.js +27 -0
- package/dist/a2a/correlation.js.map +1 -1
- package/dist/a2a/types.d.ts +4 -0
- package/dist/a2a/types.d.ts.map +1 -1
- package/dist/a2a/types.js.map +1 -1
- package/dist/action.d.ts +3 -0
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js.map +1 -1
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +34 -7
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/production-agent.d.ts +40 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +113 -15
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-loop-with-resume.d.ts +21 -0
- package/dist/agent/run-loop-with-resume.d.ts.map +1 -1
- package/dist/agent/run-loop-with-resume.js +163 -4
- package/dist/agent/run-loop-with-resume.js.map +1 -1
- package/dist/agent/run-manager.d.ts +16 -9
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +93 -42
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/thread-debug-history.d.ts +10 -0
- package/dist/agent/thread-debug-history.d.ts.map +1 -0
- package/dist/agent/thread-debug-history.js +68 -0
- package/dist/agent/thread-debug-history.js.map +1 -0
- package/dist/agent/types.d.ts +3 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +6 -1
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/templates-meta.js +2 -2
- package/dist/cli/templates-meta.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts +1 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +76 -13
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/resources/McpIntegrationDialog.d.ts.map +1 -1
- package/dist/client/resources/McpIntegrationDialog.js +1 -1
- package/dist/client/resources/McpIntegrationDialog.js.map +1 -1
- package/dist/client/sse-event-processor.d.ts.map +1 -1
- package/dist/client/sse-event-processor.js +12 -3
- package/dist/client/sse-event-processor.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +48 -17
- package/dist/db/client.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/integrations/adapters/slack.js +7 -3
- package/dist/integrations/adapters/slack.js.map +1 -1
- package/dist/localization/default-messages.d.ts +43 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +43 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/mcp/screen-memory-stdio.d.ts +7 -7
- package/dist/mcp/screen-memory-stdio.d.ts.map +1 -1
- package/dist/notifications/routes.d.ts +6 -6
- package/dist/observability/traces.d.ts +3 -1
- package/dist/observability/traces.d.ts.map +1 -1
- package/dist/observability/traces.js +73 -4
- package/dist/observability/traces.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/actions/custom-provider-registration.d.ts +12 -12
- package/dist/provider-api/actions/provider-api.d.ts +13 -13
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +233 -10
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/scripts/describe-workspace-apps.js +2 -2
- package/dist/scripts/describe-workspace-apps.js.map +1 -1
- package/dist/secrets/crypto.d.ts +31 -21
- package/dist/secrets/crypto.d.ts.map +1 -1
- package/dist/secrets/crypto.js +108 -33
- package/dist/secrets/crypto.js.map +1 -1
- package/dist/secrets/storage.d.ts +3 -5
- package/dist/secrets/storage.d.ts.map +1 -1
- package/dist/secrets/storage.js +40 -25
- package/dist/secrets/storage.js.map +1 -1
- package/dist/server/agent-capabilities.js +1 -1
- package/dist/server/agent-capabilities.js.map +1 -1
- package/dist/server/agent-chat/action-filters-a2a.d.ts +17 -3
- package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -1
- package/dist/server/agent-chat/action-filters-a2a.js +92 -3
- package/dist/server/agent-chat/action-filters-a2a.js.map +1 -1
- package/dist/server/agent-chat/context-tools.d.ts.map +1 -1
- package/dist/server/agent-chat/context-tools.js +2 -0
- package/dist/server/agent-chat/context-tools.js.map +1 -1
- package/dist/server/agent-chat/plugin-options.d.ts +23 -0
- package/dist/server/agent-chat/plugin-options.d.ts.map +1 -1
- package/dist/server/agent-chat/plugin-options.js +4 -1
- package/dist/server/agent-chat/plugin-options.js.map +1 -1
- package/dist/server/agent-chat/prompt-resources.js +1 -1
- package/dist/server/agent-chat/prompt-resources.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +2 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +79 -56
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/realtime-token.d.ts +1 -1
- package/dist/templates/default/.agents/skills/secrets/SKILL.md +14 -7
- package/dist/templates/headless/.agents/skills/secrets/SKILL.md +14 -7
- package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +18 -7
- package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +15 -14
- package/dist/templates/workspace-core/.agents/skills/secrets/SKILL.md +14 -7
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +1 -0
- package/dist/vite/client.js.map +1 -1
- package/docs/content/agent-native-toolkit.mdx +13 -6
- package/docs/content/cloneable-saas.mdx +5 -5
- package/docs/content/creating-templates.mdx +9 -0
- package/docs/content/deployment.mdx +14 -10
- package/docs/content/doctor.mdx +8 -1
- package/docs/content/drop-in-agent.mdx +1 -1
- package/docs/content/extensions.mdx +18 -18
- package/docs/content/faq.mdx +4 -4
- package/docs/content/key-concepts.mdx +30 -21
- package/docs/content/template-brain-developers.mdx +4 -1
- package/docs/content/template-mail-developers.mdx +4 -1
- package/docs/content/what-is-agent-native.mdx +6 -6
- package/package.json +2 -2
- package/src/a2a/client.ts +449 -66
- package/src/a2a/correlation.ts +31 -0
- package/src/a2a/types.ts +4 -0
- package/src/action.ts +3 -0
- package/src/agent/engine/registry.ts +45 -5
- package/src/agent/production-agent.ts +151 -18
- package/src/agent/run-loop-with-resume.ts +190 -3
- package/src/agent/run-manager.ts +117 -41
- package/src/agent/thread-debug-history.ts +86 -0
- package/src/agent/types.ts +3 -1
- package/src/cli/create.ts +11 -1
- package/src/cli/templates-meta.ts +2 -2
- package/src/client/agent-chat-adapter.ts +91 -13
- package/src/client/resources/McpIntegrationDialog.tsx +11 -9
- package/src/client/sse-event-processor.ts +17 -3
- package/src/db/client.ts +57 -17
- package/src/integrations/adapters/slack.ts +8 -3
- package/src/localization/default-messages.ts +44 -0
- package/src/observability/traces.ts +78 -5
- package/src/scripts/call-agent.ts +290 -9
- package/src/scripts/describe-workspace-apps.ts +2 -2
- package/src/secrets/crypto.ts +126 -34
- package/src/secrets/storage.ts +61 -25
- package/src/server/agent-capabilities.ts +1 -1
- package/src/server/agent-chat/action-filters-a2a.ts +111 -7
- package/src/server/agent-chat/context-tools.ts +2 -0
- package/src/server/agent-chat/plugin-options.ts +34 -1
- package/src/server/agent-chat/prompt-resources.ts +1 -1
- package/src/server/agent-chat-plugin.ts +91 -59
- package/src/templates/default/.agents/skills/secrets/SKILL.md +14 -7
- package/src/templates/headless/.agents/skills/secrets/SKILL.md +14 -7
- package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +18 -7
- package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +15 -14
- package/src/templates/workspace-core/.agents/skills/secrets/SKILL.md +14 -7
- package/src/vite/client.ts +1 -0
|
@@ -17,8 +17,6 @@ import {
|
|
|
17
17
|
IconLayoutSidebar,
|
|
18
18
|
IconPhoto,
|
|
19
19
|
IconHistory,
|
|
20
|
-
IconArrowBackUp,
|
|
21
|
-
IconArrowForwardUp,
|
|
22
20
|
IconFolderOpen,
|
|
23
21
|
IconSettings,
|
|
24
22
|
IconSchema,
|
|
@@ -67,7 +65,6 @@ import {
|
|
|
67
65
|
} from "@/lib/aspect-ratios";
|
|
68
66
|
import type { GoogleSlidesExportResult } from "@/lib/export-google-slides-client";
|
|
69
67
|
import { parseUploadResponse } from "@/lib/upload-response";
|
|
70
|
-
import { shortcutLabel } from "@/lib/utils";
|
|
71
68
|
|
|
72
69
|
import { ExportMenu } from "./ExportMenu";
|
|
73
70
|
interface EditorToolbarProps {
|
|
@@ -90,10 +87,6 @@ interface EditorToolbarProps {
|
|
|
90
87
|
historyOpen: boolean;
|
|
91
88
|
onShowHistory: () => void;
|
|
92
89
|
historyButtonRef: React.RefObject<HTMLButtonElement | null>;
|
|
93
|
-
onUndo: () => void;
|
|
94
|
-
onRedo: () => void;
|
|
95
|
-
canUndo: boolean;
|
|
96
|
-
canRedo: boolean;
|
|
97
90
|
currentSlide?: Slide;
|
|
98
91
|
onUpdateSlide?: (updates: Partial<Omit<Slide, "id">>) => void;
|
|
99
92
|
/** Active users on the current slide (from collab awareness) */
|
|
@@ -171,6 +164,8 @@ const backgroundOptions = [
|
|
|
171
164
|
];
|
|
172
165
|
|
|
173
166
|
const HEX_COLOR_PATTERN = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i;
|
|
167
|
+
const TOOLBAR_ICON_BUTTON_CLASS =
|
|
168
|
+
"inline-flex size-8 flex-shrink-0 items-center justify-center rounded-md transition-colors";
|
|
174
169
|
|
|
175
170
|
/** Native <input type="color"> only accepts 3/6-digit hex — fall back to
|
|
176
171
|
* black for gradients or other raw CSS values so the picker still opens. */
|
|
@@ -247,10 +242,6 @@ export default function EditorToolbar({
|
|
|
247
242
|
assetsButtonRef,
|
|
248
243
|
onShowHistory,
|
|
249
244
|
historyButtonRef,
|
|
250
|
-
onUndo,
|
|
251
|
-
onRedo,
|
|
252
|
-
canUndo,
|
|
253
|
-
canRedo,
|
|
254
245
|
currentSlide,
|
|
255
246
|
onUpdateSlide,
|
|
256
247
|
activeUsers,
|
|
@@ -426,10 +417,10 @@ export default function EditorToolbar({
|
|
|
426
417
|
<TooltipTrigger asChild>
|
|
427
418
|
<Link
|
|
428
419
|
to="/"
|
|
429
|
-
className=
|
|
420
|
+
className={`${TOOLBAR_ICON_BUTTON_CLASS} hover:bg-accent`}
|
|
430
421
|
aria-label={t("editorToolbar.backToDecks")}
|
|
431
422
|
>
|
|
432
|
-
<IconArrowLeft className="
|
|
423
|
+
<IconArrowLeft className="size-4 text-muted-foreground" />
|
|
433
424
|
</Link>
|
|
434
425
|
</TooltipTrigger>
|
|
435
426
|
<TooltipContent>{t("editorToolbar.backToDecks")}</TooltipContent>
|
|
@@ -440,12 +431,12 @@ export default function EditorToolbar({
|
|
|
440
431
|
<TooltipTrigger asChild>
|
|
441
432
|
<button
|
|
442
433
|
onClick={onToggleSidebar}
|
|
443
|
-
className={
|
|
434
|
+
className={`${TOOLBAR_ICON_BUTTON_CLASS} md:hidden hover:bg-accent ${
|
|
444
435
|
sidebarOpen ? "text-muted-foreground" : "text-muted-foreground/70"
|
|
445
436
|
}`}
|
|
446
437
|
aria-label={t("editorToolbar.toggleSlideList")}
|
|
447
438
|
>
|
|
448
|
-
<IconLayoutSidebar className="
|
|
439
|
+
<IconLayoutSidebar className="size-4" />
|
|
449
440
|
</button>
|
|
450
441
|
</TooltipTrigger>
|
|
451
442
|
<TooltipContent>{t("editorToolbar.toggleSlideList")}</TooltipContent>
|
|
@@ -486,14 +477,14 @@ export default function EditorToolbar({
|
|
|
486
477
|
closeAll();
|
|
487
478
|
setLayoutOpen(!layoutOpen);
|
|
488
479
|
}}
|
|
489
|
-
className={
|
|
480
|
+
className={`${TOOLBAR_ICON_BUTTON_CLASS} ${
|
|
490
481
|
layoutOpen
|
|
491
482
|
? "text-foreground/90 bg-accent"
|
|
492
483
|
: "text-muted-foreground hover:text-foreground/70 hover:bg-accent"
|
|
493
484
|
}`}
|
|
494
485
|
aria-label={t("editorToolbar.slideSettings")}
|
|
495
486
|
>
|
|
496
|
-
<IconSettings className="
|
|
487
|
+
<IconSettings className="size-4" />
|
|
497
488
|
</button>
|
|
498
489
|
</TooltipTrigger>
|
|
499
490
|
<TooltipContent>{t("editorToolbar.slideSettings")}</TooltipContent>
|
|
@@ -665,7 +656,7 @@ graph TD
|
|
|
665
656
|
console.error("Mermaid to Excalidraw failed:", err);
|
|
666
657
|
}
|
|
667
658
|
}}
|
|
668
|
-
className="flex items-center gap-2 w-full px-3 py-1.5 text-xs text-[
|
|
659
|
+
className="flex items-center gap-2 w-full px-3 py-1.5 text-xs text-[hsl(var(--accent-cyan))]/80 hover:text-[hsl(var(--accent-cyan))] hover:bg-accent/50 transition-colors"
|
|
669
660
|
>
|
|
670
661
|
<IconTransform className="w-3 h-3" />
|
|
671
662
|
{t("editorToolbar.convertMermaidToExcalidraw")}
|
|
@@ -719,8 +710,8 @@ graph TD
|
|
|
719
710
|
{/* Aspect Ratio section (deck-level) */}
|
|
720
711
|
{onSetAspectRatio && (
|
|
721
712
|
<>
|
|
722
|
-
<div className="mx-2 my-1.5 border-t border-
|
|
723
|
-
<div className="px-3 py-1.5 text-[10px] font-medium text-
|
|
713
|
+
<div className="mx-2 my-1.5 border-t border-border" />
|
|
714
|
+
<div className="px-3 py-1.5 text-[10px] font-medium text-muted-foreground/70 uppercase tracking-wider">
|
|
724
715
|
{t("editorToolbar.aspectRatio")}
|
|
725
716
|
</div>
|
|
726
717
|
<div className="px-3 pb-2.5 grid grid-cols-4 gap-1">
|
|
@@ -734,7 +725,7 @@ graph TD
|
|
|
734
725
|
className={`px-1.5 py-1 rounded text-[10px] font-medium border ${
|
|
735
726
|
active
|
|
736
727
|
? "bg-[#609FF8]/20 text-[#609FF8] border-[#609FF8]/30"
|
|
737
|
-
: "text-
|
|
728
|
+
: "text-muted-foreground hover:text-foreground hover:bg-accent/50 border-transparent"
|
|
738
729
|
}`}
|
|
739
730
|
>
|
|
740
731
|
{r}
|
|
@@ -764,7 +755,7 @@ graph TD
|
|
|
764
755
|
aria-label={t("editorToolbar.addTextBox")}
|
|
765
756
|
aria-pressed={textBoxMode}
|
|
766
757
|
aria-keyshortcuts="T"
|
|
767
|
-
className={
|
|
758
|
+
className={`${TOOLBAR_ICON_BUTTON_CLASS} ${
|
|
768
759
|
textBoxMode
|
|
769
760
|
? "bg-accent text-foreground"
|
|
770
761
|
: "text-muted-foreground hover:bg-accent hover:text-foreground/70"
|
|
@@ -796,14 +787,14 @@ graph TD
|
|
|
796
787
|
<TooltipTrigger asChild>
|
|
797
788
|
<DropdownMenuTrigger asChild>
|
|
798
789
|
<button
|
|
799
|
-
className={
|
|
790
|
+
className={`${TOOLBAR_ICON_BUTTON_CLASS} relative cursor-pointer ${
|
|
800
791
|
anyToolActive || toolsOpen
|
|
801
792
|
? "bg-accent text-foreground"
|
|
802
793
|
: "text-muted-foreground hover:text-foreground/70 hover:bg-accent"
|
|
803
794
|
}`}
|
|
804
795
|
aria-label={t("editorToolbar.slideTools")}
|
|
805
796
|
>
|
|
806
|
-
<IconTool className="
|
|
797
|
+
<IconTool className="size-4" />
|
|
807
798
|
{anyToolActive && !toolsOpen && (
|
|
808
799
|
<span className="absolute top-1 right-1 w-1.5 h-1.5 rounded-full bg-[#609FF8]" />
|
|
809
800
|
)}
|
|
@@ -869,52 +860,6 @@ graph TD
|
|
|
869
860
|
</DropdownMenu>
|
|
870
861
|
)}
|
|
871
862
|
|
|
872
|
-
{/* Edit-only cluster — undo/redo */}
|
|
873
|
-
{canEdit && (
|
|
874
|
-
<>
|
|
875
|
-
{/* Separator */}
|
|
876
|
-
<div className="hidden h-5 w-px flex-shrink-0 bg-border/70 sm:block" />
|
|
877
|
-
|
|
878
|
-
{/* Undo/Redo */}
|
|
879
|
-
<div className="flex items-center flex-shrink-0">
|
|
880
|
-
<Tooltip>
|
|
881
|
-
<TooltipTrigger asChild>
|
|
882
|
-
<button
|
|
883
|
-
onClick={onUndo}
|
|
884
|
-
disabled={!canUndo}
|
|
885
|
-
className="p-2.5 sm:p-1.5 rounded-md hover:bg-accent disabled:opacity-20 transition-colors"
|
|
886
|
-
aria-label={t("editorToolbar.undo")}
|
|
887
|
-
>
|
|
888
|
-
<IconArrowBackUp className="w-3.5 h-3.5 text-muted-foreground" />
|
|
889
|
-
</button>
|
|
890
|
-
</TooltipTrigger>
|
|
891
|
-
<TooltipContent>
|
|
892
|
-
{t("editorToolbar.undoWithShortcut", {
|
|
893
|
-
shortcut: shortcutLabel("cmd+z"),
|
|
894
|
-
})}
|
|
895
|
-
</TooltipContent>
|
|
896
|
-
</Tooltip>
|
|
897
|
-
<Tooltip>
|
|
898
|
-
<TooltipTrigger asChild>
|
|
899
|
-
<button
|
|
900
|
-
onClick={onRedo}
|
|
901
|
-
disabled={!canRedo}
|
|
902
|
-
className="p-2.5 sm:p-1.5 rounded-md hover:bg-accent disabled:opacity-20 transition-colors"
|
|
903
|
-
aria-label={t("editorToolbar.redo")}
|
|
904
|
-
>
|
|
905
|
-
<IconArrowForwardUp className="w-3.5 h-3.5 text-muted-foreground" />
|
|
906
|
-
</button>
|
|
907
|
-
</TooltipTrigger>
|
|
908
|
-
<TooltipContent>
|
|
909
|
-
{t("editorToolbar.redoWithShortcut", {
|
|
910
|
-
shortcut: shortcutLabel("cmd+shift+z"),
|
|
911
|
-
})}
|
|
912
|
-
</TooltipContent>
|
|
913
|
-
</Tooltip>
|
|
914
|
-
</div>
|
|
915
|
-
</>
|
|
916
|
-
)}
|
|
917
|
-
|
|
918
863
|
{/* Save status — subtle "Saving…" / "Saved" / offline pill. Renders
|
|
919
864
|
nothing when idle. Only meaningful for editors. */}
|
|
920
865
|
{canEdit && (
|
|
@@ -941,14 +886,14 @@ graph TD
|
|
|
941
886
|
<button
|
|
942
887
|
onClick={onToggleStyle}
|
|
943
888
|
data-slide-style-trigger="true"
|
|
944
|
-
className={
|
|
889
|
+
className={`${TOOLBAR_ICON_BUTTON_CLASS} relative ${
|
|
945
890
|
styleOpen
|
|
946
891
|
? "bg-accent text-foreground"
|
|
947
892
|
: "text-muted-foreground hover:bg-accent hover:text-foreground/70"
|
|
948
893
|
}`}
|
|
949
894
|
aria-label={t("styleInspector.title")}
|
|
950
895
|
>
|
|
951
|
-
<IconPalette className="
|
|
896
|
+
<IconPalette className="size-4" />
|
|
952
897
|
</button>
|
|
953
898
|
</TooltipTrigger>
|
|
954
899
|
<TooltipContent>{t("styleInspector.title")}</TooltipContent>
|
|
@@ -961,14 +906,14 @@ graph TD
|
|
|
961
906
|
<TooltipTrigger asChild>
|
|
962
907
|
<button
|
|
963
908
|
onClick={onToggleComments}
|
|
964
|
-
className={
|
|
909
|
+
className={`${TOOLBAR_ICON_BUTTON_CLASS} relative ${
|
|
965
910
|
commentsOpen
|
|
966
911
|
? "text-foreground bg-accent"
|
|
967
912
|
: "text-muted-foreground hover:text-foreground/70 hover:bg-accent"
|
|
968
913
|
}`}
|
|
969
914
|
aria-label={t("editorToolbar.comments")}
|
|
970
915
|
>
|
|
971
|
-
<IconMessage className="
|
|
916
|
+
<IconMessage className="size-4" />
|
|
972
917
|
{unresolvedCommentCount > 0 && (
|
|
973
918
|
<span className="absolute -top-0.5 -right-0.5 w-3.5 h-3.5 rounded-full bg-[#609FF8] text-[8px] font-bold text-black flex items-center justify-center leading-none">
|
|
974
919
|
{unresolvedCommentCount > 9 ? "9+" : unresolvedCommentCount}
|
|
@@ -1053,10 +998,10 @@ graph TD
|
|
|
1053
998
|
<DropdownMenuTrigger asChild>
|
|
1054
999
|
<button
|
|
1055
1000
|
ref={historyButtonRef}
|
|
1056
|
-
className=
|
|
1001
|
+
className={`${TOOLBAR_ICON_BUTTON_CLASS} cursor-pointer text-muted-foreground hover:bg-accent hover:text-foreground/70`}
|
|
1057
1002
|
aria-label={t("editorToolbar.more")}
|
|
1058
1003
|
>
|
|
1059
|
-
<IconDotsVertical className="
|
|
1004
|
+
<IconDotsVertical className="size-4" />
|
|
1060
1005
|
</button>
|
|
1061
1006
|
</DropdownMenuTrigger>
|
|
1062
1007
|
</TooltipTrigger>
|