@agent-native/core 0.83.0 → 0.84.0
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 +28 -0
- package/corpus/core/README.md +2 -2
- package/corpus/core/docs/content/cloneable-saas.mdx +2 -2
- 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/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/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/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/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/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/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/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/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/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/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/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/app/components/editor/BubbleToolbar.tsx +5 -5
- package/corpus/templates/content/app/global.css +6 -5
- package/corpus/templates/content/changelog/2026-06-30-editor-floating-toolbars-now-use-theme-aware-colors-in-light.md +6 -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/deploy/build.js +1 -1
- package/dist/deploy/build.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +2 -2
- package/dist/notifications/routes.d.ts +1 -1
- 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/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/faq.mdx +1 -1
- package/docs/content/locales/ar-SA/cloneable-saas.mdx +2 -2
- 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/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/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/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/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/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/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/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/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/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/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,5 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
sendToAgentChat,
|
|
3
2
|
openAgentSidebar,
|
|
4
3
|
useActionQuery,
|
|
5
4
|
appApiPath,
|
|
@@ -31,6 +30,7 @@ import { Button } from "@/components/ui/button";
|
|
|
31
30
|
import { Input } from "@/components/ui/input";
|
|
32
31
|
import { Spinner } from "@/components/ui/spinner";
|
|
33
32
|
import { Textarea } from "@/components/ui/textarea";
|
|
33
|
+
import { sendToDesignAgentChat } from "@/lib/agent-chat";
|
|
34
34
|
|
|
35
35
|
interface GitHubLink {
|
|
36
36
|
id: string;
|
|
@@ -448,7 +448,11 @@ export default function DesignSystemSetup() {
|
|
|
448
448
|
);
|
|
449
449
|
|
|
450
450
|
openAgentSidebar();
|
|
451
|
-
|
|
451
|
+
sendToDesignAgentChat({
|
|
452
|
+
message: parts.join("\n"),
|
|
453
|
+
submit: true,
|
|
454
|
+
newTab: true,
|
|
455
|
+
});
|
|
452
456
|
navigate("/design-systems");
|
|
453
457
|
}, [
|
|
454
458
|
hasAnySources,
|
|
@@ -1079,19 +1083,19 @@ function BuilderIndexPreview({
|
|
|
1079
1083
|
<dt className="text-muted-foreground">
|
|
1080
1084
|
{"Project" /* i18n-ignore Builder indexing field */}
|
|
1081
1085
|
</dt>
|
|
1082
|
-
<dd className="truncate font-mono text-[11px] text-foreground/80">
|
|
1086
|
+
<dd className="truncate font-mono !text-[11px] text-foreground/80">
|
|
1083
1087
|
{result.projectId}
|
|
1084
1088
|
</dd>
|
|
1085
1089
|
<dt className="text-muted-foreground">
|
|
1086
1090
|
{"Job" /* i18n-ignore Builder indexing field */}
|
|
1087
1091
|
</dt>
|
|
1088
|
-
<dd className="truncate font-mono text-[11px] text-foreground/80">
|
|
1092
|
+
<dd className="truncate font-mono !text-[11px] text-foreground/80">
|
|
1089
1093
|
{result.jobId}
|
|
1090
1094
|
</dd>
|
|
1091
1095
|
<dt className="text-muted-foreground">
|
|
1092
1096
|
{"Design system" /* i18n-ignore Builder indexing field */}
|
|
1093
1097
|
</dt>
|
|
1094
|
-
<dd className="truncate font-mono text-[11px] text-foreground/80">
|
|
1098
|
+
<dd className="truncate font-mono !text-[11px] text-foreground/80">
|
|
1095
1099
|
{result.designSystemId}
|
|
1096
1100
|
</dd>
|
|
1097
1101
|
</dl>
|
|
@@ -543,7 +543,7 @@ export default function DesignSystems() {
|
|
|
543
543
|
<div className="flex flex-wrap items-center justify-between gap-2 px-4 pb-4">
|
|
544
544
|
<VisibilityBadge
|
|
545
545
|
visibility={ds.visibility}
|
|
546
|
-
className="text-[11px]"
|
|
546
|
+
className="!text-[11px]"
|
|
547
547
|
/>
|
|
548
548
|
<ShareButton
|
|
549
549
|
resourceType="design-system"
|
|
@@ -893,7 +893,7 @@ function TokenPreview({
|
|
|
893
893
|
<div className="text-xs font-medium text-foreground">
|
|
894
894
|
{color.label}
|
|
895
895
|
</div>
|
|
896
|
-
<div className="truncate font-mono text-[11px] text-muted-foreground">
|
|
896
|
+
<div className="truncate font-mono !text-[11px] text-muted-foreground">
|
|
897
897
|
{color.value}
|
|
898
898
|
</div>
|
|
899
899
|
</div>
|
|
@@ -37,7 +37,6 @@ import {
|
|
|
37
37
|
AlertDialogHeader,
|
|
38
38
|
AlertDialogTitle,
|
|
39
39
|
} from "@/components/ui/alert-dialog";
|
|
40
|
-
import { Badge } from "@/components/ui/badge";
|
|
41
40
|
import { Button } from "@/components/ui/button";
|
|
42
41
|
import { Checkbox } from "@/components/ui/checkbox";
|
|
43
42
|
import {
|
|
@@ -47,6 +46,7 @@ import {
|
|
|
47
46
|
DropdownMenuTrigger,
|
|
48
47
|
} from "@/components/ui/dropdown-menu";
|
|
49
48
|
import { Input } from "@/components/ui/input";
|
|
49
|
+
import { Spinner } from "@/components/ui/spinner";
|
|
50
50
|
import {
|
|
51
51
|
Tooltip,
|
|
52
52
|
TooltipContent,
|
|
@@ -83,6 +83,7 @@ export default function Index() {
|
|
|
83
83
|
() => new Set(),
|
|
84
84
|
);
|
|
85
85
|
const [showNewPrompt, setShowNewPrompt] = useState(false);
|
|
86
|
+
const [newDesignHandoffPending, setNewDesignHandoffPending] = useState(false);
|
|
86
87
|
const [newDesignSystemId, setNewDesignSystemId] = useState<
|
|
87
88
|
string | null | undefined
|
|
88
89
|
>(undefined);
|
|
@@ -112,10 +113,8 @@ export default function Index() {
|
|
|
112
113
|
const designs = designsData?.designs ?? [];
|
|
113
114
|
|
|
114
115
|
const filtered = search
|
|
115
|
-
? designs.filter(
|
|
116
|
-
(
|
|
117
|
-
d.title.toLowerCase().includes(search.toLowerCase()) ||
|
|
118
|
-
d.projectType.toLowerCase().includes(search.toLowerCase()),
|
|
116
|
+
? designs.filter((d) =>
|
|
117
|
+
d.title.toLowerCase().includes(search.toLowerCase()),
|
|
119
118
|
)
|
|
120
119
|
: designs;
|
|
121
120
|
const selectedDesignCount = selectedDesignIds.size;
|
|
@@ -271,7 +270,7 @@ export default function Index() {
|
|
|
271
270
|
...options,
|
|
272
271
|
});
|
|
273
272
|
|
|
274
|
-
|
|
273
|
+
setNewDesignHandoffPending(true);
|
|
275
274
|
navigate(`/design/${id}`);
|
|
276
275
|
},
|
|
277
276
|
[createDesign, navigate, newDesignSystemId, resolveDefaultDesignSystemId],
|
|
@@ -379,14 +378,6 @@ export default function Index() {
|
|
|
379
378
|
});
|
|
380
379
|
}, [renameId, renameDraft, queryClient, updateMutation]);
|
|
381
380
|
|
|
382
|
-
const projectTypeBadge = (type: ProjectType) => {
|
|
383
|
-
return (
|
|
384
|
-
<Badge variant="secondary" className="text-[10px] font-medium">
|
|
385
|
-
{type === "prototype" ? t("home.prototype") : t("home.other")}
|
|
386
|
-
</Badge>
|
|
387
|
-
);
|
|
388
|
-
};
|
|
389
|
-
|
|
390
381
|
const formatDate = (dateStr?: string) => {
|
|
391
382
|
if (!dateStr) return "";
|
|
392
383
|
const d = new Date(dateStr);
|
|
@@ -400,8 +391,8 @@ export default function Index() {
|
|
|
400
391
|
useSetPageTitle(t("home.pageTitle"));
|
|
401
392
|
|
|
402
393
|
useSetHeaderActions(
|
|
403
|
-
|
|
404
|
-
|
|
394
|
+
designs.length > 0 ? (
|
|
395
|
+
<div className="flex items-center gap-3">
|
|
405
396
|
<div className="relative">
|
|
406
397
|
<IconSearch className="absolute start-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground/70" />
|
|
407
398
|
<Input
|
|
@@ -411,16 +402,28 @@ export default function Index() {
|
|
|
411
402
|
className="ps-8 h-8 w-48 bg-accent/50 border-border text-sm text-foreground/90 placeholder:text-muted-foreground/70"
|
|
412
403
|
/>
|
|
413
404
|
</div>
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
405
|
+
<Button
|
|
406
|
+
size="sm"
|
|
407
|
+
onClick={openNewDesign}
|
|
408
|
+
disabled={newDesignHandoffPending}
|
|
409
|
+
className="cursor-pointer"
|
|
410
|
+
>
|
|
411
|
+
{newDesignHandoffPending ? (
|
|
412
|
+
<Spinner className="w-3.5 h-3.5" />
|
|
413
|
+
) : (
|
|
414
|
+
<IconPlus className="w-3.5 h-3.5" />
|
|
415
|
+
)}
|
|
416
|
+
{newDesignHandoffPending
|
|
417
|
+
? t("home.openingDesign")
|
|
418
|
+
: t("home.newDesign")}
|
|
419
|
+
</Button>
|
|
420
|
+
</div>
|
|
421
|
+
) : null,
|
|
420
422
|
);
|
|
421
423
|
|
|
422
424
|
return (
|
|
423
425
|
<>
|
|
426
|
+
{newDesignHandoffPending ? <NewDesignHandoffOverlay /> : null}
|
|
424
427
|
<main className="px-4 sm:px-6 py-6 sm:py-10">
|
|
425
428
|
{isLoading ? (
|
|
426
429
|
<LoadingSkeleton />
|
|
@@ -494,11 +497,16 @@ export default function Index() {
|
|
|
494
497
|
{/* New design card */}
|
|
495
498
|
<button
|
|
496
499
|
onClick={openNewDesign}
|
|
500
|
+
disabled={newDesignHandoffPending}
|
|
497
501
|
className="group relative rounded-xl border border-dashed border-border bg-card hover:border-foreground/15 overflow-hidden text-start cursor-pointer"
|
|
498
502
|
>
|
|
499
503
|
<div className="aspect-video flex items-center justify-center bg-muted/30">
|
|
500
504
|
<div className="w-12 h-12 rounded-xl bg-accent/50 flex items-center justify-center group-hover:bg-accent">
|
|
501
|
-
|
|
505
|
+
{newDesignHandoffPending ? (
|
|
506
|
+
<Spinner className="w-6 h-6 text-muted-foreground/70" />
|
|
507
|
+
) : (
|
|
508
|
+
<IconPlus className="w-6 h-6 text-muted-foreground/70 group-hover:text-muted-foreground" />
|
|
509
|
+
)}
|
|
502
510
|
</div>
|
|
503
511
|
</div>
|
|
504
512
|
<div className="p-4">
|
|
@@ -522,7 +530,6 @@ export default function Index() {
|
|
|
522
530
|
<h3 className="font-medium text-sm text-foreground/90 truncate flex-1">
|
|
523
531
|
{design.title}
|
|
524
532
|
</h3>
|
|
525
|
-
{projectTypeBadge(design.projectType)}
|
|
526
533
|
</div>
|
|
527
534
|
<div className="text-xs text-muted-foreground/70">
|
|
528
535
|
{formatDate(design.updatedAt || design.createdAt)}
|
|
@@ -629,6 +636,7 @@ export default function Index() {
|
|
|
629
636
|
designSystemsLoading={designSystemsLoading}
|
|
630
637
|
selectedDesignSystemId={newDesignSystemId ?? null}
|
|
631
638
|
onDesignSystemChange={setNewDesignSystemId}
|
|
639
|
+
loading={newDesignHandoffPending}
|
|
632
640
|
onCreateDesignSystem={() => {
|
|
633
641
|
handleNewPromptOpenChange(false);
|
|
634
642
|
navigate("/design-systems/setup");
|
|
@@ -813,6 +821,22 @@ function DesignThumbnail({ html }: { html: string | null }) {
|
|
|
813
821
|
);
|
|
814
822
|
}
|
|
815
823
|
|
|
824
|
+
function NewDesignHandoffOverlay() {
|
|
825
|
+
const t = useT();
|
|
826
|
+
return (
|
|
827
|
+
<div
|
|
828
|
+
className="fixed inset-0 z-[180] flex items-center justify-center bg-background/70 backdrop-blur-sm"
|
|
829
|
+
aria-live="polite"
|
|
830
|
+
aria-busy="true"
|
|
831
|
+
>
|
|
832
|
+
<div className="flex items-center gap-2 rounded-lg border border-border bg-popover px-3 py-2 text-sm font-medium text-foreground shadow-lg">
|
|
833
|
+
<Spinner className="size-4 text-muted-foreground" />
|
|
834
|
+
{t("home.openingDesign")}
|
|
835
|
+
</div>
|
|
836
|
+
</div>
|
|
837
|
+
);
|
|
838
|
+
}
|
|
839
|
+
|
|
816
840
|
function LoadingSkeleton() {
|
|
817
841
|
return (
|
|
818
842
|
<>
|
|
@@ -894,11 +918,10 @@ function EmptyState({
|
|
|
894
918
|
))}
|
|
895
919
|
</div>
|
|
896
920
|
<Button
|
|
897
|
-
variant="outline"
|
|
898
921
|
onClick={(e: React.MouseEvent<HTMLButtonElement>) =>
|
|
899
922
|
onCreateDesign(e as React.MouseEvent<HTMLElement>)
|
|
900
923
|
}
|
|
901
|
-
className="cursor-pointer"
|
|
924
|
+
className="cursor-pointer dark:bg-white dark:text-black dark:hover:bg-white/90"
|
|
902
925
|
>
|
|
903
926
|
<IconPlus className="w-4 h-4" />
|
|
904
927
|
{t("home.newDesign")}
|
|
@@ -1,23 +1,40 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
buildSignInReturnHref,
|
|
3
|
+
useSession,
|
|
4
|
+
useT,
|
|
5
|
+
} from "@agent-native/core/client";
|
|
6
|
+
import { IconArrowLeft, IconLogin2 } from "@tabler/icons-react";
|
|
3
7
|
import { Link } from "react-router";
|
|
4
8
|
|
|
5
9
|
import { Button } from "@/components/ui/button";
|
|
6
10
|
|
|
7
11
|
export default function NotFound() {
|
|
8
12
|
const t = useT();
|
|
13
|
+
const { session, isLoading } = useSession();
|
|
14
|
+
const showSignIn = !isLoading && !session?.email;
|
|
15
|
+
|
|
9
16
|
return (
|
|
10
17
|
<div className="flex min-h-full w-full flex-col items-center justify-center bg-background px-4 py-12">
|
|
11
18
|
<h1 className="text-6xl font-bold text-muted-foreground/60 mb-4">404</h1>
|
|
12
19
|
<p className="text-sm text-muted-foreground mb-6">
|
|
13
20
|
{t("pages.notFoundDescription")}
|
|
14
21
|
</p>
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
<div className="flex flex-wrap items-center justify-center gap-3">
|
|
23
|
+
{showSignIn && (
|
|
24
|
+
<Button asChild className="cursor-pointer">
|
|
25
|
+
<a href={buildSignInReturnHref()}>
|
|
26
|
+
<IconLogin2 className="size-4" />
|
|
27
|
+
{t("pages.notFoundSignIn")}
|
|
28
|
+
</a>
|
|
29
|
+
</Button>
|
|
30
|
+
)}
|
|
31
|
+
<Button asChild variant="outline" className="cursor-pointer">
|
|
32
|
+
<Link to="/">
|
|
33
|
+
<IconArrowLeft className="size-4 rtl:-scale-x-100" />
|
|
34
|
+
{t("pages.notFoundBackToDesigns")}
|
|
35
|
+
</Link>
|
|
36
|
+
</Button>
|
|
37
|
+
</div>
|
|
21
38
|
</div>
|
|
22
39
|
);
|
|
23
40
|
}
|
|
@@ -20,6 +20,11 @@ export default function VisualEditPage() {
|
|
|
20
20
|
const { session } = useSession();
|
|
21
21
|
const hasSession = Boolean(session?.email);
|
|
22
22
|
const primaryHref = hasSession ? "/" : buildSignInHref();
|
|
23
|
+
const primaryTarget = hasSession ? undefined : "_blank";
|
|
24
|
+
const primaryRel = hasSession ? undefined : "noopener noreferrer";
|
|
25
|
+
const primaryAriaLabel = hasSession
|
|
26
|
+
? t("visualEdit.openDesign")
|
|
27
|
+
: t("designEditor.signUpToSave");
|
|
23
28
|
|
|
24
29
|
return (
|
|
25
30
|
<main className="min-h-[100dvh] bg-background text-foreground">
|
|
@@ -32,7 +37,12 @@ export default function VisualEditPage() {
|
|
|
32
37
|
{t("navigation.brand")}
|
|
33
38
|
</Link>
|
|
34
39
|
<Button asChild variant="outline" size="sm">
|
|
35
|
-
<a
|
|
40
|
+
<a
|
|
41
|
+
href={primaryHref}
|
|
42
|
+
target={primaryTarget}
|
|
43
|
+
rel={primaryRel}
|
|
44
|
+
aria-label={primaryAriaLabel}
|
|
45
|
+
>
|
|
36
46
|
{hasSession
|
|
37
47
|
? t("visualEdit.openDesign")
|
|
38
48
|
: t("visualEdit.saveCta")}
|
|
@@ -55,16 +65,18 @@ export default function VisualEditPage() {
|
|
|
55
65
|
</p>
|
|
56
66
|
<div className="mt-7 flex flex-wrap items-center gap-3">
|
|
57
67
|
<Button asChild size="lg" className="gap-2">
|
|
58
|
-
<a
|
|
68
|
+
<a
|
|
69
|
+
href={primaryHref}
|
|
70
|
+
target={primaryTarget}
|
|
71
|
+
rel={primaryRel}
|
|
72
|
+
aria-label={primaryAriaLabel}
|
|
73
|
+
>
|
|
59
74
|
<IconDeviceFloppy className="size-4" />
|
|
60
75
|
{hasSession
|
|
61
76
|
? t("visualEdit.openDesign")
|
|
62
77
|
: t("visualEdit.saveCta")}
|
|
63
78
|
</a>
|
|
64
79
|
</Button>
|
|
65
|
-
<Button asChild variant="ghost" size="lg">
|
|
66
|
-
<Link to="/templates">{t("visualEdit.templatesCta")}</Link>
|
|
67
|
-
</Button>
|
|
68
80
|
</div>
|
|
69
81
|
</div>
|
|
70
82
|
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import { redirect } from "react-router";
|
|
2
2
|
|
|
3
|
-
import { messagesByLocale } from "@/i18n-data";
|
|
4
|
-
|
|
5
3
|
export function loader() {
|
|
6
|
-
return redirect("/
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export function meta() {
|
|
10
|
-
return [{ title: messagesByLocale["en-US"].routeTitles.designTemplates }];
|
|
4
|
+
return redirect("/", 302);
|
|
11
5
|
}
|
|
12
6
|
|
|
13
7
|
export default function ExamplesRedirect() {
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import { messagesByLocale } from "@/i18n-data";
|
|
1
|
+
import { redirect } from "react-router";
|
|
3
2
|
|
|
4
|
-
export function
|
|
5
|
-
return
|
|
3
|
+
export function loader() {
|
|
4
|
+
return redirect("/", 302);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export default function TemplatesRedirect() {
|
|
8
|
+
return null;
|
|
6
9
|
}
|