@agent-native/core 0.83.0 → 0.84.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/corpus/README.md +1 -1
- package/corpus/core/CHANGELOG.md +34 -0
- package/corpus/core/README.md +2 -2
- package/corpus/core/docs/content/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/evals.mdx +34 -12
- package/corpus/core/docs/content/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/ar-SA/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/ar-SA/evals.mdx +7 -0
- package/corpus/core/docs/content/locales/ar-SA/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/ar-SA/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/de-DE/evals.mdx +8 -0
- package/corpus/core/docs/content/locales/de-DE/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/es-ES/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/es-ES/evals.mdx +8 -0
- package/corpus/core/docs/content/locales/es-ES/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/es-ES/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/fr-FR/evals.mdx +8 -0
- package/corpus/core/docs/content/locales/fr-FR/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/hi-IN/evals.mdx +8 -0
- package/corpus/core/docs/content/locales/hi-IN/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/hi-IN/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/ja-JP/evals.mdx +7 -0
- package/corpus/core/docs/content/locales/ja-JP/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/ja-JP/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/ko-KR/evals.mdx +7 -0
- package/corpus/core/docs/content/locales/ko-KR/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/ko-KR/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/pt-BR/evals.mdx +8 -0
- package/corpus/core/docs/content/locales/pt-BR/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/pt-BR/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-CN/evals.mdx +7 -0
- package/corpus/core/docs/content/locales/zh-CN/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-CN/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-TW/evals.mdx +7 -0
- package/corpus/core/docs/content/locales/zh-TW/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-TW/template-chat.mdx +1 -1
- package/corpus/core/docs/content/template-chat.mdx +1 -1
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/agent/engine/builtin.ts +1 -1
- package/corpus/core/src/agent/engine/output-tokens.ts +1 -1
- package/corpus/core/src/agent/harness/acp-adapter.ts +28 -4
- package/corpus/core/src/agent/harness/ai-sdk-adapter.ts +3 -0
- package/corpus/core/src/agent/harness/translate.ts +3 -0
- package/corpus/core/src/agent/harness/types.ts +1 -0
- package/corpus/core/src/agent/model-config.ts +34 -13
- package/corpus/core/src/agent/production-agent.ts +87 -10
- package/corpus/core/src/agent/thread-data-builder.ts +29 -4
- package/corpus/core/src/agent/tool-call-journal.ts +109 -48
- package/corpus/core/src/agent/types.ts +6 -1
- package/corpus/core/src/cli/design-connect.ts +106 -0
- package/corpus/core/src/cli/gateway-helpers.ts +17 -0
- package/corpus/core/src/cli/recap.ts +0 -2
- package/corpus/core/src/cli/skills.ts +54 -16
- package/corpus/core/src/cli/workspace-dev.ts +29 -5
- package/corpus/core/src/client/AssistantChat.tsx +89 -42
- package/corpus/core/src/client/DefaultSpinner.tsx +8 -1
- package/corpus/core/src/client/chat/message-components.tsx +49 -1
- package/corpus/core/src/client/chat/repo-helpers.ts +71 -0
- package/corpus/core/src/client/chat/run-recovery.tsx +15 -5
- package/corpus/core/src/client/components/ApiKeySettings.tsx +8 -8
- package/corpus/core/src/client/components/CodeRequiredDialog.tsx +26 -15
- package/corpus/core/src/client/components/MissingKeyCard.tsx +13 -6
- package/corpus/core/src/client/composer/TiptapComposer.tsx +4 -3
- package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +0 -1
- package/corpus/core/src/client/guided-questions.tsx +21 -27
- package/corpus/core/src/client/integrations/IntegrationCard.tsx +1 -1
- package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +1 -1
- package/corpus/core/src/client/onboarding/OnboardingBanner.tsx +2 -2
- package/corpus/core/src/client/onboarding/OnboardingPanel.tsx +23 -19
- package/corpus/core/src/client/resources/ResourceEditor.tsx +18 -10
- package/corpus/core/src/client/resources/ResourcesPanel.tsx +5 -1
- package/corpus/core/src/client/settings/SettingsPanel.tsx +8 -3
- package/corpus/core/src/client/settings/useBuilderStatus.ts +8 -41
- package/corpus/core/src/client/useProductionAgent.ts +6 -2
- package/corpus/core/src/deploy/build.ts +1 -1
- package/corpus/core/src/eval/define-eval.ts +4 -1
- package/corpus/core/src/eval/report.ts +23 -8
- package/corpus/core/src/eval/runner.ts +41 -6
- package/corpus/core/src/eval/types.ts +11 -0
- package/corpus/core/src/observability/traces.ts +3 -3
- package/corpus/core/src/onboarding/default-steps.ts +1 -1
- package/corpus/core/src/scripts/agent-engines/manage-agent-engine.ts +1 -1
- package/corpus/core/src/scripts/agent-engines/set-agent-engine.ts +1 -1
- package/corpus/core/src/server/agent-chat-plugin.ts +177 -81
- package/corpus/core/src/server/core-routes-plugin.ts +7 -1
- package/corpus/core/src/server/open-route.ts +59 -40
- package/corpus/core/src/shared/reasoning-effort.ts +2 -0
- package/corpus/core/src/sharing/access.ts +22 -2
- package/corpus/core/src/sharing/registry.ts +18 -0
- package/corpus/core/src/styles/agent-native.css +104 -20
- package/corpus/core/src/styles/rich-markdown-editor.css +11 -10
- package/corpus/templates/analytics/app/components/dashboard/CumulativeNetChart.tsx +10 -10
- package/corpus/templates/analytics/app/components/dashboard/RevenueChart.tsx +10 -10
- package/corpus/templates/analytics/app/components/dashboard/RevenueComparisonChart.tsx +6 -5
- package/corpus/templates/analytics/app/components/dashboard/TimeSeriesChart.tsx +9 -9
- package/corpus/templates/analytics/app/global.css +4 -0
- package/corpus/templates/analytics/app/lib/chart-theme.ts +13 -0
- package/corpus/templates/analytics/app/pages/adhoc/_shared/KpiChart.tsx +22 -24
- package/corpus/templates/analytics/changelog/2026-06-30-dashboard-charts-now-use-theme-aware-tooltip-and-grid-colors.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-30-fixed-ask-composer-spacing-so-the-chat-field-has-a-comfortab.md +6 -0
- package/corpus/templates/calendar/AGENTS.md +4 -0
- package/corpus/templates/calendar/actions/connect-google-calendar.ts +80 -0
- package/corpus/templates/calendar/changelog/2026-06-30-calendar-now-gives-the-agent-a-safe-google-connection-link-i.md +6 -0
- package/corpus/templates/calendar/server/plugins/agent-chat.ts +4 -0
- package/corpus/templates/content/AGENTS.md +9 -2
- package/corpus/templates/content/actions/_database-row-batch.ts +230 -0
- package/corpus/templates/content/actions/_database-utils.ts +17 -9
- package/corpus/templates/content/actions/_notion-action-utils.ts +26 -0
- package/corpus/templates/content/actions/connect-notion-status.ts +13 -4
- package/corpus/templates/content/actions/create-and-link-notion-page.ts +23 -0
- package/corpus/templates/content/actions/delete-database-items.ts +55 -0
- package/corpus/templates/content/actions/delete-document.ts +4 -4
- package/corpus/templates/content/actions/disconnect-notion.ts +16 -0
- package/corpus/templates/content/actions/duplicate-database-item.ts +1 -1
- package/corpus/templates/content/actions/duplicate-database-items.ts +191 -0
- package/corpus/templates/content/actions/link-notion-page.ts +10 -7
- package/corpus/templates/content/actions/list-notion-links.ts +3 -4
- package/corpus/templates/content/actions/pull-notion-page.ts +7 -9
- package/corpus/templates/content/actions/push-notion-page.ts +7 -9
- package/corpus/templates/content/actions/refresh-notion-sync-status.ts +24 -0
- package/corpus/templates/content/actions/resolve-notion-sync-conflict.ts +23 -0
- package/corpus/templates/content/actions/search-notion-pages.ts +67 -0
- package/corpus/templates/content/actions/unlink-notion-page.ts +23 -0
- package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +5 -5
- package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +27 -34
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +16 -13
- package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +10 -10
- package/corpus/templates/content/app/components/editor/NotionConflictBanner.tsx +1 -1
- package/corpus/templates/content/app/components/editor/NotionSyncBar.tsx +18 -9
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +27 -34
- package/corpus/templates/content/app/components/editor/database/navigation-state.ts +10 -4
- package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +32 -17
- package/corpus/templates/content/app/global.css +6 -5
- package/corpus/templates/content/app/hooks/use-content-database.ts +35 -0
- package/corpus/templates/content/app/hooks/use-notion.ts +108 -99
- package/corpus/templates/content/changelog/2026-06-30-editor-floating-toolbars-now-use-theme-aware-colors-in-light.md +6 -0
- package/corpus/templates/content/package.json +3 -0
- package/corpus/templates/content/parity/README.md +69 -0
- package/corpus/templates/content/parity/eval-scenarios.ts +118 -0
- package/corpus/templates/content/parity/exceptions.allowlist.ts +17 -0
- package/corpus/templates/content/parity/matrix.md +28 -0
- package/corpus/templates/content/parity/matrix.ts +606 -0
- package/corpus/templates/content/parity/matrix.types.ts +42 -0
- package/corpus/templates/content/parity/parity-evals.eval.ts +4 -0
- package/corpus/templates/content/parity/render-matrix.ts +90 -0
- package/corpus/templates/content/parity/scenario-to-eval.ts +57 -0
- package/corpus/templates/content/shared/api.ts +11 -0
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +6 -1
- package/corpus/templates/design/actions/add-localhost-screens.ts +63 -8
- package/corpus/templates/design/actions/apply-motion-edit.ts +12 -46
- package/corpus/templates/design/actions/list-design-native-assets.ts +2 -1
- package/corpus/templates/design/actions/migrate-board-objects-to-file.ts +49 -1
- package/corpus/templates/design/actions/navigate.ts +3 -12
- package/corpus/templates/design/actions/open-visual-edit.ts +341 -0
- package/corpus/templates/design/actions/view-screen.ts +1 -1
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +1 -1
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +345 -14
- package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +71 -91
- package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +25 -27
- package/corpus/templates/design/app/components/design/DeviceFrame.tsx +1 -1
- package/corpus/templates/design/app/components/design/DrawOverlay.tsx +2 -2
- package/corpus/templates/design/app/components/design/EditPanel.tsx +1111 -570
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +162 -32
- package/corpus/templates/design/app/components/design/MotionDock.tsx +268 -240
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +1038 -150
- package/corpus/templates/design/app/components/design/QuestionFlow.tsx +1 -1
- package/corpus/templates/design/app/components/design/ReviewPanel.tsx +81 -102
- package/corpus/templates/design/app/components/design/StatesPanel.tsx +6 -6
- package/corpus/templates/design/app/components/design/TokensPanel.tsx +11 -11
- package/corpus/templates/design/app/components/design/TweaksPanel.tsx +9 -7
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +1129 -155
- package/corpus/templates/design/app/components/design/bridge/hit-test.bridge.ts +130 -37
- package/corpus/templates/design/app/components/design/canvas-primitive-style.ts +24 -11
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +184 -162
- package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +137 -79
- package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +13 -13
- package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +8 -8
- package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +2 -2
- package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +4 -4
- package/corpus/templates/design/app/components/design/inspector/InspectorAiActions.tsx +3 -3
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +13 -7
- package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +14 -11
- package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +4 -4
- package/corpus/templates/design/app/components/design/inspector/index.ts +2 -0
- package/corpus/templates/design/app/components/design/types.ts +19 -0
- package/corpus/templates/design/app/components/editor/PromptDialog.tsx +61 -78
- package/corpus/templates/design/app/components/layout/Header.tsx +0 -1
- package/corpus/templates/design/app/components/layout/Layout.tsx +3 -2
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +0 -2
- package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +5 -4
- package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +1 -1
- package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +2 -2
- package/corpus/templates/design/app/global.css +56 -0
- package/corpus/templates/design/app/hooks/use-agent-generating.ts +4 -5
- package/corpus/templates/design/app/hooks/use-navigation-state.ts +6 -7
- package/corpus/templates/design/app/hooks/use-question-flow.ts +3 -2
- package/corpus/templates/design/app/hooks/useAgentEditRequest.ts +6 -4
- package/corpus/templates/design/app/i18n/zh-TW.ts +5 -14
- package/corpus/templates/design/app/i18n-data.ts +63 -188
- package/corpus/templates/design/app/lib/agent-chat.ts +13 -0
- package/corpus/templates/design/app/pages/DesignEditor.tsx +1428 -384
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +9 -5
- package/corpus/templates/design/app/pages/DesignSystems.tsx +2 -2
- package/corpus/templates/design/app/pages/Index.tsx +49 -26
- package/corpus/templates/design/app/pages/NotFound.tsx +25 -8
- package/corpus/templates/design/app/pages/VisualEdit.tsx +17 -5
- package/corpus/templates/design/app/routes/examples.tsx +1 -7
- package/corpus/templates/design/app/routes/templates.tsx +7 -4
- package/corpus/templates/design/changelog/2026-06-30-board-shapes-and-auto-layout-controls-are-clearer.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-component-selections-now-use-purple-component-chrome-and-sho.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-constraints-now-stay-tucked-into-a-compact-inspector-preview.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-creating-a-component-now-opens-in-a-compact-inspector-popove.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-cards-no-longer-show-legacy-project-type-badges.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-chat-now-keeps-new-turns-in-the-visible-design-agent-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-editor-panels-now-keep-their-compact-text-sizing-cons.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-no-longer-shows-the-connected-local-code-warning-bann.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-now-opens-to-the-files-panel-unless-a-generation-is-a.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-opens-with-a-cleaner-empty-canvas-and-loading-preview.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-tools-use-simpler-less-decorative-icons.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-dragging-absolute-elements-no-longer-shows-coordinate-labels.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-fixed-all-screens-opening-too-zoomed-in-by-default.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-fixed-the-public-design-assets-sidebar-so-native-components-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-fixed-the-screen-overview-board-so-empty-board-space-no-long.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-full-view-screens-can-now-scroll-while-remaining-editable.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-inspector-element-headers-show-the-selected-html-tag-and-the.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-inspector-inputs-stay-compact-across-desktop-breakpoints.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-layers-can-be-multi-selected-from-the-canvas-and-edited-toge.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-local-visual-edit-links-can-edit-localhost-frames-without-si.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-localhost-visual-edit-frames-can-now-be-selected-and-edited.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-marquee-selection-now-works-inside-screens-multi-selected-la.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-motion-is-now-available-from-the-persistent-left-rail-and-th.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-motion-timeline-collapse-and-reopen-animations-feel-smoother.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-multi-select-outlines-now-stay-consistent-across-all-screens.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-new-board-shapes-now-start-with-neutral-gray-styling.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-new-designs-open-into-a-steadier-loading-state-before-the-ed.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-new-designs-show-a-loading-state-during-handoff-and-keep-edi.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-public-visual-edit-design-links-now-open-directly-instead-of.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-removed-the-confusing-states-section-from-the-design-editor-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-removed-the-templates-gallery-from-design-navigation.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-share-stays-visible-as-soon-as-editable-designs-load.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-signed-out-save-and-share-controls-use-simpler-labels-and-op.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-text-added-on-the-canvas-now-focuses-cleanly-with-the-right-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-design-editor-loading-skeleton-is-simpler-and-its-bottom.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-design-editor-loading-skeleton-now-follows-the-current-t.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-design-inspector-no-longer-shows-child-layout-controls-o.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-design-inspector-no-longer-shows-the-ask-ai-section-abov.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-design-review-panel-no-longer-shows-a-separate-inline-au.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-empty-designs-page-now-focuses-on-a-single-primary-new-d.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-layers-panel-header-stays-as-layers-while-multiple-items.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-missing-design-screen-now-uses-a-neutral-back-button.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-motion-timeline-now-closes-without-squeezing-the-canvas-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-new-design-connect-ai-setup-now-lines-up-with-the-compos.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-screen-overview-board-now-blends-into-the-canvas-and-new.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-drops-now-show-screen-guides.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-layers-now-keep-a-transparent-backdrop-and-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-layers-now-select-reliably-from-all-screens.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-visual-edit-can-open-and-refresh-localhost-screens-in-one-au.md +6 -0
- package/corpus/templates/design/e2e/helpers.ts +15 -4
- package/corpus/templates/design/server/db/index.ts +52 -0
- package/corpus/templates/design/server/plugins/agent-chat.ts +5 -0
- package/corpus/templates/design/server/plugins/auth.ts +1 -0
- package/corpus/templates/design/server/plugins/core-routes.ts +4 -0
- package/corpus/templates/design/shared/board-file.ts +380 -5
- package/corpus/templates/design/shared/board-objects.ts +2 -2
- package/corpus/templates/design/shared/code-layer.ts +50 -6
- package/corpus/templates/design/shared/motion-compiler.ts +27 -0
- package/corpus/templates/macros/app/components/DailyProgress.tsx +41 -37
- package/corpus/templates/macros/app/components/ExerciseCard.tsx +2 -2
- package/corpus/templates/macros/app/components/MealCard.tsx +2 -2
- package/corpus/templates/macros/app/components/VoiceDictation.tsx +1 -1
- package/corpus/templates/macros/app/components/WeeklyCaloriesChart.tsx +1 -1
- package/corpus/templates/macros/app/components/WeightCard.tsx +2 -2
- package/corpus/templates/macros/app/components/WeightTracker.tsx +1 -1
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +1 -1
- package/corpus/templates/macros/app/routes/_index.tsx +5 -5
- package/corpus/templates/macros/app/routes/analytics.tsx +1 -1
- package/corpus/templates/macros/changelog/2026-06-30-dashboard-loading-and-chart-surfaces-now-use-theme-aware-col.md +6 -0
- package/corpus/templates/mail/app/components/email/ComposeBubbleToolbar.tsx +14 -11
- package/corpus/templates/mail/app/global.css +3 -2
- package/corpus/templates/mail/changelog/2026-06-30-compose-floating-toolbars-now-use-theme-aware-colors-in-ligh.md +6 -0
- package/corpus/templates/plan/app/pages/PlansPage.tsx +2 -2
- package/corpus/templates/slides/app/components/deck/DeckCard.tsx +3 -3
- package/corpus/templates/slides/app/global.css +10 -0
- package/corpus/templates/slides/app/pages/Index.tsx +55 -51
- package/corpus/templates/slides/changelog/2026-06-30-deck-thumbnails-collapse-cleanly-to-one-column-when-the-chat.md +6 -0
- package/dist/agent/engine/anthropic-engine.d.ts +2 -2
- package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
- package/dist/agent/engine/builder-engine.d.ts +2 -2
- package/dist/agent/engine/builder-engine.d.ts.map +1 -1
- package/dist/agent/engine/builtin.js +1 -1
- package/dist/agent/engine/builtin.js.map +1 -1
- package/dist/agent/engine/output-tokens.js +1 -1
- package/dist/agent/engine/output-tokens.js.map +1 -1
- package/dist/agent/harness/acp-adapter.d.ts +4 -1
- package/dist/agent/harness/acp-adapter.d.ts.map +1 -1
- package/dist/agent/harness/acp-adapter.js +19 -2
- package/dist/agent/harness/acp-adapter.js.map +1 -1
- package/dist/agent/harness/ai-sdk-adapter.d.ts.map +1 -1
- package/dist/agent/harness/ai-sdk-adapter.js +3 -0
- package/dist/agent/harness/ai-sdk-adapter.js.map +1 -1
- package/dist/agent/harness/translate.d.ts.map +1 -1
- package/dist/agent/harness/translate.js +3 -0
- package/dist/agent/harness/translate.js.map +1 -1
- package/dist/agent/harness/types.d.ts +1 -0
- package/dist/agent/harness/types.d.ts.map +1 -1
- package/dist/agent/harness/types.js.map +1 -1
- package/dist/agent/model-config.d.ts +21 -20
- package/dist/agent/model-config.d.ts.map +1 -1
- package/dist/agent/model-config.js +31 -13
- package/dist/agent/model-config.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +85 -10
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/thread-data-builder.d.ts.map +1 -1
- package/dist/agent/thread-data-builder.js +27 -6
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/agent/tool-call-journal.d.ts +11 -9
- package/dist/agent/tool-call-journal.d.ts.map +1 -1
- package/dist/agent/tool-call-journal.js +92 -40
- package/dist/agent/tool-call-journal.js.map +1 -1
- package/dist/agent/types.d.ts +5 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/cli/design-connect.d.ts.map +1 -1
- package/dist/cli/design-connect.js +84 -0
- package/dist/cli/design-connect.js.map +1 -1
- package/dist/cli/gateway-helpers.d.ts +4 -0
- package/dist/cli/gateway-helpers.d.ts.map +1 -1
- package/dist/cli/gateway-helpers.js +9 -0
- package/dist/cli/gateway-helpers.js.map +1 -1
- package/dist/cli/recap.d.ts.map +1 -1
- package/dist/cli/recap.js +0 -2
- package/dist/cli/recap.js.map +1 -1
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +54 -16
- package/dist/cli/skills.js.map +1 -1
- package/dist/cli/workspace-dev.d.ts.map +1 -1
- package/dist/cli/workspace-dev.js +33 -6
- package/dist/cli/workspace-dev.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +72 -26
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/DefaultSpinner.d.ts.map +1 -1
- package/dist/client/DefaultSpinner.js +8 -1
- package/dist/client/DefaultSpinner.js.map +1 -1
- package/dist/client/chat/message-components.d.ts +7 -1
- package/dist/client/chat/message-components.d.ts.map +1 -1
- package/dist/client/chat/message-components.js +37 -1
- package/dist/client/chat/message-components.js.map +1 -1
- package/dist/client/chat/repo-helpers.d.ts +1 -0
- package/dist/client/chat/repo-helpers.d.ts.map +1 -1
- package/dist/client/chat/repo-helpers.js +59 -0
- package/dist/client/chat/repo-helpers.js.map +1 -1
- package/dist/client/chat/run-recovery.d.ts.map +1 -1
- package/dist/client/chat/run-recovery.js +4 -4
- package/dist/client/chat/run-recovery.js.map +1 -1
- package/dist/client/components/ApiKeySettings.js +8 -8
- package/dist/client/components/ApiKeySettings.js.map +1 -1
- package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -1
- package/dist/client/components/CodeRequiredDialog.js +24 -15
- package/dist/client/components/CodeRequiredDialog.js.map +1 -1
- package/dist/client/components/MissingKeyCard.d.ts.map +1 -1
- package/dist/client/components/MissingKeyCard.js +11 -6
- package/dist/client/components/MissingKeyCard.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +4 -3
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.js +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
- package/dist/client/guided-questions.d.ts.map +1 -1
- package/dist/client/guided-questions.js +6 -6
- package/dist/client/guided-questions.js.map +1 -1
- package/dist/client/integrations/IntegrationCard.js +1 -1
- package/dist/client/integrations/IntegrationCard.js.map +1 -1
- package/dist/client/integrations/IntegrationsPanel.js +1 -1
- package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
- package/dist/client/onboarding/OnboardingBanner.js +2 -2
- package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.js +23 -19
- package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
- package/dist/client/resources/ResourceEditor.d.ts.map +1 -1
- package/dist/client/resources/ResourceEditor.js +13 -10
- package/dist/client/resources/ResourceEditor.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +2 -1
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +8 -3
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
- package/dist/client/settings/useBuilderStatus.js +6 -38
- package/dist/client/settings/useBuilderStatus.js.map +1 -1
- package/dist/client/useProductionAgent.d.ts +2 -1
- package/dist/client/useProductionAgent.d.ts.map +1 -1
- package/dist/client/useProductionAgent.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/deploy/build.js +1 -1
- package/dist/deploy/build.js.map +1 -1
- package/dist/eval/define-eval.d.ts.map +1 -1
- package/dist/eval/define-eval.js +2 -1
- package/dist/eval/define-eval.js.map +1 -1
- package/dist/eval/report.d.ts.map +1 -1
- package/dist/eval/report.js +19 -4
- package/dist/eval/report.js.map +1 -1
- package/dist/eval/runner.d.ts.map +1 -1
- package/dist/eval/runner.js +38 -6
- package/dist/eval/runner.js.map +1 -1
- package/dist/eval/types.d.ts +11 -0
- package/dist/eval/types.d.ts.map +1 -1
- package/dist/eval/types.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +2 -2
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +5 -5
- package/dist/observability/traces.d.ts.map +1 -1
- package/dist/observability/traces.js.map +1 -1
- package/dist/onboarding/default-steps.js +1 -1
- package/dist/onboarding/default-steps.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/scripts/agent-engines/manage-agent-engine.js +1 -1
- package/dist/scripts/agent-engines/manage-agent-engine.js.map +1 -1
- package/dist/scripts/agent-engines/set-agent-engine.js +1 -1
- package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +3 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +134 -72
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts +3 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +4 -1
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/open-route.d.ts +9 -0
- package/dist/server/open-route.d.ts.map +1 -1
- package/dist/server/open-route.js +48 -38
- package/dist/server/open-route.js.map +1 -1
- package/dist/shared/reasoning-effort.js +3 -0
- package/dist/shared/reasoning-effort.js.map +1 -1
- package/dist/sharing/access.d.ts.map +1 -1
- package/dist/sharing/access.js +18 -2
- package/dist/sharing/access.js.map +1 -1
- package/dist/sharing/registry.d.ts +10 -0
- package/dist/sharing/registry.d.ts.map +1 -1
- package/dist/sharing/registry.js.map +1 -1
- package/dist/styles/agent-native.css +104 -20
- package/dist/styles/rich-markdown-editor.css +11 -10
- package/docs/content/cloneable-saas.mdx +2 -2
- package/docs/content/evals.mdx +34 -12
- package/docs/content/faq.mdx +1 -1
- package/docs/content/locales/ar-SA/cloneable-saas.mdx +2 -2
- package/docs/content/locales/ar-SA/evals.mdx +7 -0
- package/docs/content/locales/ar-SA/faq.mdx +1 -1
- package/docs/content/locales/ar-SA/template-chat.mdx +1 -1
- package/docs/content/locales/de-DE/cloneable-saas.mdx +2 -2
- package/docs/content/locales/de-DE/evals.mdx +8 -0
- package/docs/content/locales/de-DE/faq.mdx +1 -1
- package/docs/content/locales/de-DE/template-chat.mdx +1 -1
- package/docs/content/locales/es-ES/cloneable-saas.mdx +2 -2
- package/docs/content/locales/es-ES/evals.mdx +8 -0
- package/docs/content/locales/es-ES/faq.mdx +1 -1
- package/docs/content/locales/es-ES/template-chat.mdx +1 -1
- package/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
- package/docs/content/locales/fr-FR/evals.mdx +8 -0
- package/docs/content/locales/fr-FR/faq.mdx +1 -1
- package/docs/content/locales/fr-FR/template-chat.mdx +1 -1
- package/docs/content/locales/hi-IN/cloneable-saas.mdx +2 -2
- package/docs/content/locales/hi-IN/evals.mdx +8 -0
- package/docs/content/locales/hi-IN/faq.mdx +1 -1
- package/docs/content/locales/hi-IN/template-chat.mdx +1 -1
- package/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
- package/docs/content/locales/ja-JP/evals.mdx +7 -0
- package/docs/content/locales/ja-JP/faq.mdx +1 -1
- package/docs/content/locales/ja-JP/template-chat.mdx +1 -1
- package/docs/content/locales/ko-KR/cloneable-saas.mdx +2 -2
- package/docs/content/locales/ko-KR/evals.mdx +7 -0
- package/docs/content/locales/ko-KR/faq.mdx +1 -1
- package/docs/content/locales/ko-KR/template-chat.mdx +1 -1
- package/docs/content/locales/pt-BR/cloneable-saas.mdx +2 -2
- package/docs/content/locales/pt-BR/evals.mdx +8 -0
- package/docs/content/locales/pt-BR/faq.mdx +1 -1
- package/docs/content/locales/pt-BR/template-chat.mdx +1 -1
- package/docs/content/locales/zh-CN/cloneable-saas.mdx +2 -2
- package/docs/content/locales/zh-CN/evals.mdx +7 -0
- package/docs/content/locales/zh-CN/faq.mdx +1 -1
- package/docs/content/locales/zh-CN/template-chat.mdx +1 -1
- package/docs/content/locales/zh-TW/cloneable-saas.mdx +2 -2
- package/docs/content/locales/zh-TW/evals.mdx +7 -0
- package/docs/content/locales/zh-TW/faq.mdx +1 -1
- package/docs/content/locales/zh-TW/template-chat.mdx +1 -1
- package/docs/content/template-chat.mdx +1 -1
- package/package.json +1 -1
- package/corpus/templates/content/server/routes/api/notion/disconnect.post.ts +0 -12
- package/corpus/templates/design/app/components/design/LocalSourceEditBanner.tsx +0 -157
- package/corpus/templates/design/app/lib/design-templates.ts +0 -1305
- package/corpus/templates/design/app/pages/Templates.tsx +0 -279
|
@@ -1,121 +1,101 @@
|
|
|
1
1
|
import { Skeleton } from "@/components/ui/skeleton";
|
|
2
|
+
import { Spinner } from "@/components/ui/spinner";
|
|
3
|
+
|
|
4
|
+
const panelGhost = "bg-[var(--design-editor-skeleton-panel-ghost-bg)]";
|
|
2
5
|
|
|
3
6
|
/**
|
|
4
|
-
* Loading placeholder for the design editor.
|
|
5
|
-
*
|
|
6
|
-
* "a design is coming" instead of a bare spinner on a black void.
|
|
7
|
+
* Loading placeholder for the design editor. Keeps the shell recognizable while
|
|
8
|
+
* staying quiet enough that it does not read as mock content.
|
|
7
9
|
*/
|
|
8
10
|
export function DesignEditorSkeleton({
|
|
9
11
|
embedded = false,
|
|
12
|
+
pendingGeneration = false,
|
|
10
13
|
}: {
|
|
11
14
|
embedded?: boolean;
|
|
15
|
+
pendingGeneration?: boolean;
|
|
12
16
|
}) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<
|
|
18
|
-
<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<Skeleton
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
</div>
|
|
26
|
-
<div className="flex min-w-0 flex-1 flex-col">
|
|
27
|
-
<div className="flex h-10 shrink-0 items-center border-b border-border px-3">
|
|
28
|
-
<Skeleton className="h-5 min-w-0 flex-1 rounded" />
|
|
17
|
+
if (pendingGeneration) {
|
|
18
|
+
return (
|
|
19
|
+
<div className="flex h-full overflow-hidden bg-[var(--design-editor-canvas-bg)]">
|
|
20
|
+
{!embedded && (
|
|
21
|
+
<aside className="relative flex min-h-0 shrink-0 border-r border-[var(--design-editor-panel-divider-color)] bg-[var(--design-editor-panel-bg)]">
|
|
22
|
+
<div className="flex w-[52px] shrink-0 flex-col items-center p-3">
|
|
23
|
+
<Skeleton className={`size-8 rounded-md ${panelGhost}`} />
|
|
24
|
+
<div className="mt-8 flex w-full flex-col items-center gap-3">
|
|
25
|
+
<Skeleton className={`size-8 rounded-lg ${panelGhost}`} />
|
|
26
|
+
<Skeleton className={`size-8 rounded-lg ${panelGhost}`} />
|
|
27
|
+
<Skeleton className={`size-8 rounded-lg ${panelGhost}`} />
|
|
28
|
+
</div>
|
|
29
29
|
</div>
|
|
30
|
-
<div className="
|
|
31
|
-
<div className="
|
|
32
|
-
<Skeleton className=
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
<div className="flex w-[320px] min-w-0 flex-col bg-[var(--design-editor-panel-bg)]">
|
|
31
|
+
<div className="border-b border-[var(--design-editor-panel-divider-color)] p-3">
|
|
32
|
+
<Skeleton className={`h-5 w-28 rounded ${panelGhost}`} />
|
|
33
|
+
</div>
|
|
34
|
+
<div className="flex min-h-0 flex-1 flex-col gap-4 p-3">
|
|
35
|
+
<Skeleton className={`h-16 w-full rounded-lg ${panelGhost}`} />
|
|
36
|
+
<Skeleton className={`h-24 w-5/6 rounded-lg ${panelGhost}`} />
|
|
37
|
+
<div className="mt-auto space-y-2">
|
|
38
|
+
<Skeleton className={`h-9 w-full rounded-lg ${panelGhost}`} />
|
|
39
|
+
<Skeleton className={`h-9 w-3/4 rounded-lg ${panelGhost}`} />
|
|
36
40
|
</div>
|
|
37
41
|
</div>
|
|
38
|
-
<Skeleton className="h-7 w-full rounded-sm" />
|
|
39
|
-
</div>
|
|
40
|
-
<div className="shrink-0 border-b border-border p-2">
|
|
41
|
-
<Skeleton className="h-7 w-full rounded-sm" />
|
|
42
42
|
</div>
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
</aside>
|
|
44
|
+
)}
|
|
45
|
+
|
|
46
|
+
<main className="relative min-w-0 flex-1 overflow-hidden bg-[var(--design-editor-skeleton-canvas-bg)]">
|
|
47
|
+
<div className="flex h-full min-h-0 items-center justify-center px-8 py-10">
|
|
48
|
+
<div className="flex w-full max-w-md flex-col items-center text-center">
|
|
49
|
+
<div className="mb-4 flex size-12 items-center justify-center rounded-xl border border-[var(--design-editor-panel-divider-color)] bg-[var(--design-editor-panel-bg)] shadow-[0_18px_50px_-34px_rgba(0,0,0,0.8)]">
|
|
50
|
+
<Spinner className="size-5 text-foreground/40" />
|
|
51
|
+
</div>
|
|
52
|
+
<Skeleton className={`h-4 w-32 rounded ${panelGhost}`} />
|
|
48
53
|
</div>
|
|
49
54
|
</div>
|
|
55
|
+
</main>
|
|
56
|
+
</div>
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return (
|
|
61
|
+
<div className="flex h-full overflow-hidden bg-background">
|
|
62
|
+
{!embedded && (
|
|
63
|
+
<aside className="hidden w-80 shrink-0 bg-[var(--design-editor-panel-bg)] lg:flex">
|
|
64
|
+
<div className="flex w-[52px] shrink-0 flex-col items-center p-3">
|
|
65
|
+
<Skeleton className={`size-8 rounded-md ${panelGhost}`} />
|
|
66
|
+
<Skeleton className={`mt-8 h-40 w-full rounded-lg ${panelGhost}`} />
|
|
67
|
+
</div>
|
|
68
|
+
<div className="flex min-w-0 flex-1 flex-col gap-3 p-3">
|
|
69
|
+
<Skeleton className={`h-4 w-full rounded ${panelGhost}`} />
|
|
70
|
+
<Skeleton className={`h-24 w-full rounded-lg ${panelGhost}`} />
|
|
71
|
+
<Skeleton className={`h-36 w-4/5 rounded-lg ${panelGhost}`} />
|
|
72
|
+
</div>
|
|
50
73
|
</aside>
|
|
51
74
|
)}
|
|
52
75
|
|
|
53
76
|
<main className="relative min-w-0 flex-1 overflow-hidden bg-[var(--design-editor-skeleton-canvas-bg)]">
|
|
54
|
-
<div className="flex h-full items-center justify-center
|
|
55
|
-
<
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
<Skeleton className="h-2.5 w-2.5 rounded-full" />
|
|
60
|
-
<Skeleton className="h-2.5 w-2.5 rounded-full" />
|
|
61
|
-
<Skeleton className="ml-3 h-4 w-48 rounded" />
|
|
62
|
-
</div>
|
|
63
|
-
{/* Faux content */}
|
|
64
|
-
<div className="space-y-6 p-8">
|
|
65
|
-
<div className="space-y-3">
|
|
66
|
-
<Skeleton className="h-8 w-2/3 rounded-lg" />
|
|
67
|
-
<Skeleton className="h-4 w-1/2 rounded" />
|
|
68
|
-
</div>
|
|
69
|
-
<div className="grid grid-cols-3 gap-4">
|
|
70
|
-
<Skeleton className="h-28 rounded-xl" />
|
|
71
|
-
<Skeleton className="h-28 rounded-xl" />
|
|
72
|
-
<Skeleton className="h-28 rounded-xl" />
|
|
73
|
-
</div>
|
|
74
|
-
<Skeleton className="h-40 w-full rounded-xl" />
|
|
75
|
-
</div>
|
|
76
|
-
</div>
|
|
77
|
+
<div className="flex h-full items-center justify-center px-10 pb-28 pt-10">
|
|
78
|
+
<Skeleton
|
|
79
|
+
aria-hidden="true"
|
|
80
|
+
className={`h-72 w-full max-w-[520px] rounded-xl ${panelGhost}`}
|
|
81
|
+
/>
|
|
77
82
|
</div>
|
|
78
83
|
|
|
79
84
|
{!embedded && (
|
|
80
|
-
<div
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
<Skeleton key={index} className="h-11 w-16 rounded-md" />
|
|
84
|
-
))}
|
|
85
|
-
</div>
|
|
86
|
-
<Skeleton className="h-12 w-px rounded-none bg-white/15" />
|
|
87
|
-
<div className="flex gap-1 rounded-lg bg-white/10 p-1">
|
|
88
|
-
{Array.from({ length: 4 }).map((_, index) => (
|
|
89
|
-
<Skeleton key={index} className="size-10 rounded-md" />
|
|
90
|
-
))}
|
|
91
|
-
</div>
|
|
92
|
-
</div>
|
|
85
|
+
<div
|
|
86
|
+
className={`absolute bottom-4 left-1/2 z-[70] h-11 w-64 -translate-x-1/2 rounded-xl ${panelGhost}`}
|
|
87
|
+
/>
|
|
93
88
|
)}
|
|
94
89
|
</main>
|
|
95
90
|
|
|
96
91
|
{!embedded && (
|
|
97
|
-
<aside className="hidden w-
|
|
98
|
-
<div className="shrink-0
|
|
99
|
-
<
|
|
100
|
-
<Skeleton className="h-7 w-12 rounded-md" />
|
|
101
|
-
<Skeleton className="h-7 w-14 rounded-md" />
|
|
102
|
-
<Skeleton className="h-7 w-16 rounded-md" />
|
|
103
|
-
<Skeleton className="size-7 rounded-md" />
|
|
104
|
-
</div>
|
|
105
|
-
</div>
|
|
106
|
-
<div className="flex h-11 shrink-0 items-center justify-between border-b border-border px-3">
|
|
107
|
-
<div className="flex gap-1">
|
|
108
|
-
<Skeleton className="h-7 w-16 rounded-md" />
|
|
109
|
-
<Skeleton className="h-7 w-16 rounded-md" />
|
|
110
|
-
</div>
|
|
111
|
-
<Skeleton className="h-7 w-12 rounded-md" />
|
|
92
|
+
<aside className="hidden w-80 shrink-0 flex-col bg-[var(--design-editor-panel-bg)] lg:flex">
|
|
93
|
+
<div className="flex h-12 shrink-0 items-center justify-end px-3">
|
|
94
|
+
<Skeleton className={`h-6 w-40 rounded-md ${panelGhost}`} />
|
|
112
95
|
</div>
|
|
113
|
-
<div className="space-y-
|
|
114
|
-
<Skeleton className=
|
|
115
|
-
<Skeleton className=
|
|
116
|
-
<Skeleton className="h-7 w-full rounded-md" />
|
|
117
|
-
<Skeleton className="h-4 w-20 rounded" />
|
|
118
|
-
<Skeleton className="h-24 w-full rounded-md" />
|
|
96
|
+
<div className="space-y-4 p-3">
|
|
97
|
+
<Skeleton className={`h-6 w-24 rounded ${panelGhost}`} />
|
|
98
|
+
<Skeleton className={`h-36 w-full rounded-lg ${panelGhost}`} />
|
|
119
99
|
</div>
|
|
120
100
|
</aside>
|
|
121
101
|
)}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// i18n-raw-literal-disable-file — new Design Studio panel; UI strings are localized when this feature is finalized in the follow-up PR.
|
|
2
2
|
import {
|
|
3
3
|
agentNativePath,
|
|
4
|
-
sendToAgentChat,
|
|
5
4
|
useActionQuery,
|
|
6
5
|
useActionMutation,
|
|
7
6
|
useChangeVersions,
|
|
@@ -20,11 +19,12 @@ import {
|
|
|
20
19
|
IconChevronDown,
|
|
21
20
|
IconExternalLink,
|
|
22
21
|
IconLock,
|
|
22
|
+
IconMessageCircle,
|
|
23
|
+
IconPalette,
|
|
23
24
|
IconPhoto,
|
|
24
25
|
IconPlayerPlay,
|
|
25
26
|
IconPuzzle,
|
|
26
27
|
IconSearch,
|
|
27
|
-
IconSparkles,
|
|
28
28
|
} from "@tabler/icons-react";
|
|
29
29
|
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
30
30
|
import {
|
|
@@ -53,6 +53,7 @@ import {
|
|
|
53
53
|
import { Skeleton } from "@/components/ui/skeleton";
|
|
54
54
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
|
55
55
|
import { Textarea } from "@/components/ui/textarea";
|
|
56
|
+
import { sendToDesignAgentChat } from "@/lib/agent-chat";
|
|
56
57
|
import { cn } from "@/lib/utils";
|
|
57
58
|
|
|
58
59
|
import { ShaderFillsPanel } from "./inspector/ShaderFillsPanel";
|
|
@@ -320,8 +321,7 @@ function FirstPartyExtRow({
|
|
|
320
321
|
<span className="block truncate text-sm font-medium leading-tight text-foreground">
|
|
321
322
|
{label}
|
|
322
323
|
</span>
|
|
323
|
-
<span className="mt-0.5
|
|
324
|
-
<IconPuzzle className="size-3 shrink-0" />
|
|
324
|
+
<span className="mt-0.5 block truncate text-xs leading-none text-muted-foreground">
|
|
325
325
|
<span className="truncate">Built-in</span>
|
|
326
326
|
</span>
|
|
327
327
|
</span>
|
|
@@ -581,15 +581,15 @@ export function AssetLibraryPanel({ context }: AssetLibraryPanelProps) {
|
|
|
581
581
|
<Tabs defaultValue="native" className="flex min-h-0 flex-1 flex-col">
|
|
582
582
|
<div className="border-b border-border/60 px-2 py-1.5">
|
|
583
583
|
<TabsList className="grid h-7 w-full grid-cols-3 rounded-md p-0.5">
|
|
584
|
-
<TabsTrigger value="native" className="h-6 gap-1 px-2 text-[11px]">
|
|
584
|
+
<TabsTrigger value="native" className="h-6 gap-1 px-2 !text-[11px]">
|
|
585
585
|
<IconAssembly className="size-3" />
|
|
586
586
|
Native
|
|
587
587
|
</TabsTrigger>
|
|
588
|
-
<TabsTrigger value="media" className="h-6 gap-1 px-2 text-[11px]">
|
|
588
|
+
<TabsTrigger value="media" className="h-6 gap-1 px-2 !text-[11px]">
|
|
589
589
|
<IconPhoto className="size-3" />
|
|
590
590
|
Media
|
|
591
591
|
</TabsTrigger>
|
|
592
|
-
<TabsTrigger value="figma" className="h-6 gap-1 px-2 text-[11px]">
|
|
592
|
+
<TabsTrigger value="figma" className="h-6 gap-1 px-2 !text-[11px]">
|
|
593
593
|
<IconBrandFigma className="size-3" />
|
|
594
594
|
Figma
|
|
595
595
|
</TabsTrigger>
|
|
@@ -631,7 +631,7 @@ export function AssetLibraryPanel({ context }: AssetLibraryPanelProps) {
|
|
|
631
631
|
</span>
|
|
632
632
|
<span className="min-w-0 flex-1">
|
|
633
633
|
<span className="flex items-center gap-1.5">
|
|
634
|
-
<span className="truncate text-[11px] font-medium leading-tight text-foreground">
|
|
634
|
+
<span className="truncate !text-[11px] font-medium leading-tight text-foreground">
|
|
635
635
|
{asset.title}
|
|
636
636
|
</span>
|
|
637
637
|
<span className="shrink-0 rounded border border-border/70 px-1 py-0.5 text-[9px] leading-none text-muted-foreground">
|
|
@@ -678,19 +678,19 @@ export function AssetLibraryPanel({ context }: AssetLibraryPanelProps) {
|
|
|
678
678
|
value={figmaFileInput}
|
|
679
679
|
onChange={(event) => setFigmaFileInput(event.target.value)}
|
|
680
680
|
placeholder="Figma file URL or key"
|
|
681
|
-
className="h-7 text-[11px]"
|
|
681
|
+
className="h-7 !text-[11px] md:!text-[11px]"
|
|
682
682
|
/>
|
|
683
683
|
<div className="flex gap-1.5">
|
|
684
684
|
<Input
|
|
685
685
|
value={figmaQueryInput}
|
|
686
686
|
onChange={(event) => setFigmaQueryInput(event.target.value)}
|
|
687
687
|
placeholder="Search components"
|
|
688
|
-
className="h-7 min-w-0 flex-1 text-[11px]"
|
|
688
|
+
className="h-7 min-w-0 flex-1 !text-[11px] md:!text-[11px]"
|
|
689
689
|
/>
|
|
690
690
|
<Button
|
|
691
691
|
type="submit"
|
|
692
692
|
size="sm"
|
|
693
|
-
className="h-7 cursor-pointer gap-1 px-2 text-[11px]"
|
|
693
|
+
className="h-7 cursor-pointer gap-1 px-2 !text-[11px]"
|
|
694
694
|
disabled={!figmaFileInput.trim() || figmaAssets.isFetching}
|
|
695
695
|
>
|
|
696
696
|
<IconSearch className="size-3" />
|
|
@@ -949,10 +949,10 @@ function ShaderFillsExtPanel({ context }: ShaderFillsExtPanelProps) {
|
|
|
949
949
|
<Button
|
|
950
950
|
type="button"
|
|
951
951
|
size="sm"
|
|
952
|
-
className="h-6 cursor-pointer gap-1 px-2 text-[11px]"
|
|
952
|
+
className="h-6 cursor-pointer gap-1 px-2 !text-[11px]"
|
|
953
953
|
onClick={() => setShowShaders(true)}
|
|
954
954
|
>
|
|
955
|
-
<
|
|
955
|
+
<IconPalette className="size-3" />
|
|
956
956
|
Browse Shaders
|
|
957
957
|
</Button>
|
|
958
958
|
</div>
|
|
@@ -991,7 +991,7 @@ function ShaderFillsExtPanel({ context }: ShaderFillsExtPanelProps) {
|
|
|
991
991
|
<Button
|
|
992
992
|
type="button"
|
|
993
993
|
size="sm"
|
|
994
|
-
className="h-6 cursor-pointer gap-1 px-2 text-[11px]"
|
|
994
|
+
className="h-6 cursor-pointer gap-1 px-2 !text-[11px]"
|
|
995
995
|
disabled={!previewMatchesTarget || applyShaderFill.isPending}
|
|
996
996
|
onClick={() => {
|
|
997
997
|
if (previewMatchesTarget && previewed) {
|
|
@@ -999,7 +999,7 @@ function ShaderFillsExtPanel({ context }: ShaderFillsExtPanelProps) {
|
|
|
999
999
|
}
|
|
1000
1000
|
}}
|
|
1001
1001
|
>
|
|
1002
|
-
<
|
|
1002
|
+
<IconPalette className="size-3" />
|
|
1003
1003
|
{applyShaderFill.isPending
|
|
1004
1004
|
? "Applying…"
|
|
1005
1005
|
: previewMatchesTarget
|
|
@@ -1027,7 +1027,7 @@ function TokenAuditorPanel({ context }: TokenAuditorPanelProps) {
|
|
|
1027
1027
|
const t = useT();
|
|
1028
1028
|
|
|
1029
1029
|
const handleAskAgent = () => {
|
|
1030
|
-
|
|
1030
|
+
sendToDesignAgentChat({
|
|
1031
1031
|
message:
|
|
1032
1032
|
"Run a token audit on the active design: index CSS custom properties, surface any hard-coded colours that should be tokens, flag clashes, and suggest fixes.",
|
|
1033
1033
|
context: [
|
|
@@ -1056,10 +1056,10 @@ function TokenAuditorPanel({ context }: TokenAuditorPanelProps) {
|
|
|
1056
1056
|
<Button
|
|
1057
1057
|
type="button"
|
|
1058
1058
|
size="sm"
|
|
1059
|
-
className="h-6 cursor-pointer gap-1 px-2 text-[11px]"
|
|
1059
|
+
className="h-6 cursor-pointer gap-1 px-2 !text-[11px]"
|
|
1060
1060
|
onClick={handleAskAgent}
|
|
1061
1061
|
>
|
|
1062
|
-
<
|
|
1062
|
+
<IconMessageCircle className="size-3" />
|
|
1063
1063
|
{t("designEditor.askAgent") || "Ask agent"}
|
|
1064
1064
|
</Button>
|
|
1065
1065
|
</div>
|
|
@@ -1077,7 +1077,7 @@ function MotionPresetsPanel({ context }: MotionPresetsPanelProps) {
|
|
|
1077
1077
|
const t = useT();
|
|
1078
1078
|
|
|
1079
1079
|
const handleAskAgent = () => {
|
|
1080
|
-
|
|
1080
|
+
sendToDesignAgentChat({
|
|
1081
1081
|
message:
|
|
1082
1082
|
"Apply a motion preset to the selected element. Suggest fade-in, slide-up, pulse, bounce, or spin, then call apply-motion-edit to write the keyframes atomically.",
|
|
1083
1083
|
context: [
|
|
@@ -1111,10 +1111,10 @@ function MotionPresetsPanel({ context }: MotionPresetsPanelProps) {
|
|
|
1111
1111
|
<Button
|
|
1112
1112
|
type="button"
|
|
1113
1113
|
size="sm"
|
|
1114
|
-
className="h-6 cursor-pointer gap-1 px-2 text-[11px]"
|
|
1114
|
+
className="h-6 cursor-pointer gap-1 px-2 !text-[11px]"
|
|
1115
1115
|
onClick={handleAskAgent}
|
|
1116
1116
|
>
|
|
1117
|
-
<
|
|
1117
|
+
<IconMessageCircle className="size-3" />
|
|
1118
1118
|
{t("designEditor.askAgent") || "Ask agent"}
|
|
1119
1119
|
</Button>
|
|
1120
1120
|
</div>
|
|
@@ -1159,7 +1159,7 @@ export function DesignExtensionsPanel({
|
|
|
1159
1159
|
const submitCreatePrompt: CreateExtensionSubmitHandler = (text: string) => {
|
|
1160
1160
|
const trimmed = text.trim();
|
|
1161
1161
|
if (!trimmed) return;
|
|
1162
|
-
|
|
1162
|
+
sendToDesignAgentChat({
|
|
1163
1163
|
message: `Create a Design extension: ${trimmed}`,
|
|
1164
1164
|
context: buildExtensionCreateContext(trimmed, context),
|
|
1165
1165
|
submit: true,
|
|
@@ -1211,7 +1211,7 @@ export function DesignExtensionsPanel({
|
|
|
1211
1211
|
label: "Shader Fills",
|
|
1212
1212
|
description: "GPU shader fill presets — preview & apply",
|
|
1213
1213
|
category: "shader",
|
|
1214
|
-
icon: <
|
|
1214
|
+
icon: <IconPalette className="size-3.5" />,
|
|
1215
1215
|
panel: <ShaderFillsExtPanel context={context} />,
|
|
1216
1216
|
},
|
|
1217
1217
|
{
|
|
@@ -1454,11 +1454,10 @@ function CreateExtensionPopover({
|
|
|
1454
1454
|
type="button"
|
|
1455
1455
|
variant="outline"
|
|
1456
1456
|
size="sm"
|
|
1457
|
-
className="h-8 cursor-pointer
|
|
1457
|
+
className="h-8 cursor-pointer rounded-md bg-transparent px-3 text-sm font-medium"
|
|
1458
1458
|
aria-label={t("designEditor.addExtension")}
|
|
1459
1459
|
>
|
|
1460
1460
|
Create
|
|
1461
|
-
<IconChevronDown className="size-3.5 text-muted-foreground" />
|
|
1462
1461
|
</Button>
|
|
1463
1462
|
</PopoverTrigger>
|
|
1464
1463
|
<PopoverContent align="end" sideOffset={8} className="w-80 p-3">
|
|
@@ -1486,10 +1485,9 @@ function CreateExtensionPopover({
|
|
|
1486
1485
|
<Button
|
|
1487
1486
|
type="submit"
|
|
1488
1487
|
size="sm"
|
|
1489
|
-
className="h-8
|
|
1488
|
+
className="h-8 px-3"
|
|
1490
1489
|
disabled={!canSubmit}
|
|
1491
1490
|
>
|
|
1492
|
-
<IconSparkles className="size-3.5" />
|
|
1493
1491
|
Create
|
|
1494
1492
|
</Button>
|
|
1495
1493
|
</div>
|
|
@@ -91,7 +91,7 @@ function MobileFrame({
|
|
|
91
91
|
{/* Status bar with notch */}
|
|
92
92
|
<div className="relative flex items-center justify-between px-6 h-10 bg-black">
|
|
93
93
|
{/* Time */}
|
|
94
|
-
<span className="text-[11px] font-semibold text-white">9:41</span>
|
|
94
|
+
<span className="!text-[11px] font-semibold text-white">9:41</span>
|
|
95
95
|
{/* Dynamic Island / Notch */}
|
|
96
96
|
<div className="absolute left-1/2 -translate-x-1/2 top-1.5 w-24 h-6 rounded-full bg-zinc-900" />
|
|
97
97
|
{/* Status icons */}
|
|
@@ -386,7 +386,7 @@ export function DrawOverlay({ visible, onQueue, onSend }: DrawOverlayProps) {
|
|
|
386
386
|
<Button
|
|
387
387
|
variant="ghost"
|
|
388
388
|
size="sm"
|
|
389
|
-
className="h-6 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground"
|
|
389
|
+
className="h-6 gap-1 px-2 !text-[11px] text-muted-foreground hover:text-foreground"
|
|
390
390
|
onClick={queueDrawing}
|
|
391
391
|
disabled={strokes.length === 0}
|
|
392
392
|
>
|
|
@@ -397,7 +397,7 @@ export function DrawOverlay({ visible, onQueue, onSend }: DrawOverlayProps) {
|
|
|
397
397
|
{/* Send button */}
|
|
398
398
|
<Button
|
|
399
399
|
size="sm"
|
|
400
|
-
className="h-6 gap-1 px-3 text-[11px]"
|
|
400
|
+
className="h-6 gap-1 px-3 !text-[11px]"
|
|
401
401
|
onClick={sendAll}
|
|
402
402
|
disabled={totalQueued === 0 && strokes.length === 0}
|
|
403
403
|
>
|