@agent-native/core 0.80.4 → 0.80.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +28 -2
- package/corpus/core/docs/content/locales/ar-SA/real-time-collaboration.mdx +2 -2
- package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/real-time-collaboration.mdx +3 -3
- package/corpus/core/docs/content/locales/de-DE/template-design.mdx +1 -1
- package/corpus/core/docs/content/locales/es-ES/real-time-collaboration.mdx +2 -2
- package/corpus/core/docs/content/locales/es-ES/template-design.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/real-time-collaboration.mdx +2 -2
- package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +1 -1
- package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +1 -1
- package/corpus/core/docs/content/locales/ja-JP/real-time-collaboration.mdx +2 -2
- package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +1 -1
- package/corpus/core/docs/content/locales/ko-KR/real-time-collaboration.mdx +2 -2
- package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +1 -1
- package/corpus/core/docs/content/locales/pt-BR/real-time-collaboration.mdx +2 -2
- package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-CN/real-time-collaboration.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-TW/real-time-collaboration.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +1 -1
- package/corpus/core/docs/content/real-time-collaboration.mdx +2 -2
- package/corpus/core/docs/content/template-design.mdx +1 -1
- package/corpus/core/package.json +3 -7
- package/corpus/core/src/action.ts +21 -0
- package/corpus/core/src/agent/durable-background.ts +32 -11
- package/corpus/core/src/agent/production-agent.ts +11 -1
- package/corpus/core/src/agent/run-loop-with-resume.ts +3 -1
- package/corpus/core/src/brand-kit/fig/index.ts +17 -37
- package/corpus/core/src/cli/create.ts +1 -0
- package/corpus/core/src/cli/index.ts +1 -1
- package/corpus/core/src/cli/mcp-config-writers.ts +187 -51
- package/corpus/core/src/cli/skills.ts +18 -3
- package/corpus/core/src/client/AssistantChat.tsx +11 -1
- package/corpus/core/src/client/agent-chat.ts +12 -1
- package/corpus/core/src/client/composer/PromptComposer.tsx +100 -41
- package/corpus/core/src/client/org/OrgSwitcher.tsx +1 -1
- package/corpus/core/src/client/sharing/ShareButton.tsx +3 -27
- package/corpus/core/src/collab/presence.ts +1 -1
- package/corpus/core/src/mcp/connect-route.ts +34 -5
- package/corpus/core/src/server/action-discovery.ts +4 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +20 -0
- package/corpus/core/src/sharing/registry.ts +17 -0
- package/corpus/core/src/templates/default/pnpm-workspace.yaml +1 -0
- package/corpus/core/src/templates/workspace-root/pnpm-workspace.yaml +1 -0
- package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +2 -0
- package/corpus/templates/analytics/actions/update-dashboard.ts +8 -0
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +117 -33
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +4 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/types.ts +7 -0
- package/corpus/templates/analytics/changelog/2026-06-27-dashboards-can-now-nest-under-a-parent-in-the-sidebar-via-a-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-analytics-pages-now-sit-closer-under-the-header-with-tighter.md +6 -0
- package/corpus/templates/assets/actions/generate-image-batch.ts +3 -0
- package/corpus/templates/assets/actions/generate-image.ts +3 -0
- package/corpus/templates/assets/changelog/2026-06-29-longer-agent-generation-window.md +6 -0
- package/corpus/templates/assets/netlify.toml +3 -3
- package/corpus/templates/assets/server/plugins/agent-chat.ts +4 -1
- package/corpus/templates/clips/app/components/capture-install-options.tsx +7 -8
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +1 -1
- package/corpus/templates/content/AGENTS.md +57 -44
- package/corpus/templates/content/README.md +16 -0
- package/corpus/templates/content/actions/_builder-cms-read-client.ts +125 -0
- package/corpus/templates/content/actions/_builder-cms-source-adapter.ts +28 -6
- package/corpus/templates/content/actions/_builder-cms-write-adapter.ts +238 -69
- package/corpus/templates/content/actions/_builder-cms-write-settings.ts +125 -43
- package/corpus/templates/content/actions/_database-source-utils.ts +746 -97
- package/corpus/templates/content/actions/_database-utils.ts +17 -14
- package/corpus/templates/content/actions/_federation-join.ts +14 -2
- package/corpus/templates/content/actions/_join-suggestion.ts +89 -14
- package/corpus/templates/content/actions/_local-file-documents.ts +2 -1
- package/corpus/templates/content/actions/attach-content-database-source.ts +124 -5
- package/corpus/templates/content/actions/bind-content-database-source-field.ts +256 -0
- package/corpus/templates/content/actions/change-content-database-source-role.ts +420 -0
- package/corpus/templates/content/actions/create-document.ts +8 -0
- package/corpus/templates/content/actions/execute-builder-source-batch.ts +282 -0
- package/corpus/templates/content/actions/execute-builder-source-execution.ts +220 -8
- package/corpus/templates/content/actions/get-content-database.ts +10 -2
- package/corpus/templates/content/actions/prepare-builder-source-execution.ts +19 -2
- package/corpus/templates/content/actions/prepare-builder-source-review.ts +47 -15
- package/corpus/templates/content/actions/refresh-content-database-source.ts +11 -4
- package/corpus/templates/content/actions/review-content-database-source-change-set.ts +6 -2
- package/corpus/templates/content/actions/set-content-database-source-write-mode.ts +32 -12
- package/corpus/templates/content/actions/stage-builder-revision.ts +14 -10
- package/corpus/templates/content/actions/validate-builder-source-execution.ts +25 -3
- package/corpus/templates/content/app/blocks/BuilderDocsBlocks.tsx +10 -0
- package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +1 -0
- package/corpus/templates/content/app/components/editor/ContentReferencePreview.tsx +185 -0
- package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +1520 -553
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +3 -0
- package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +150 -1
- package/corpus/templates/content/app/components/editor/VisualEditor.tsx +19 -0
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +647 -66
- package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +543 -204
- package/corpus/templates/content/app/components/editor/extensions/ContentReferenceNode.tsx +82 -0
- package/corpus/templates/content/app/global.css +9 -0
- package/corpus/templates/content/app/hooks/use-content-database.ts +62 -0
- package/corpus/templates/content/app/i18n/zh-TW.ts +76 -0
- package/corpus/templates/content/app/i18n-data.ts +924 -0
- package/corpus/templates/content/changelog/2026-06-29-builder-review-checks-now-preserve-publish-and-unpublish-cho.md +6 -0
- package/corpus/templates/content/changelog/2026-06-29-database-sources-can-now-be-added-as-more-rows-or-matched.md +6 -0
- package/corpus/templates/content/changelog/2026-06-29-fixed-loading-the-final-rows-in-larger-databases-without-bre.md +6 -0
- package/corpus/templates/content/changelog/2026-06-29-reusable-mdx-references-now-preview-linked-local-documents-i.md +6 -0
- package/corpus/templates/content/shared/api.ts +91 -1
- package/corpus/templates/content/shared/builder-docs-blocks.ts +8 -0
- package/corpus/templates/content/shared/builder-mdx.ts +141 -4
- package/corpus/templates/content/shared/nfm.ts +62 -0
- package/corpus/templates/content/vite.config.ts +14 -7
- package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +10 -11
- package/corpus/templates/design/AGENTS.md +5 -0
- package/corpus/templates/design/_gitignore +7 -0
- package/corpus/templates/design/actions/apply-visual-edit.ts +22 -12
- package/corpus/templates/design/actions/create-design-system.ts +15 -4
- package/corpus/templates/design/actions/create-file.ts +20 -1
- package/corpus/templates/design/actions/delete-design-system.ts +2 -2
- package/corpus/templates/design/actions/duplicate-design.ts +35 -9
- package/corpus/templates/design/actions/generate-design.ts +146 -69
- package/corpus/templates/design/actions/generate-screens.ts +51 -19
- package/corpus/templates/design/actions/get-design-snapshot.ts +5 -1
- package/corpus/templates/design/actions/get-design.ts +2 -0
- package/corpus/templates/design/actions/import-design-project.ts +28 -9
- package/corpus/templates/design/actions/import-document.ts +22 -8
- package/corpus/templates/design/actions/index-design-system-with-builder.ts +6 -153
- package/corpus/templates/design/actions/navigate.ts +105 -54
- package/corpus/templates/design/actions/set-default-design-system.ts +17 -3
- package/corpus/templates/design/actions/show-design-questions.ts +2 -0
- package/corpus/templates/design/actions/update-design.ts +2 -1
- package/corpus/templates/design/actions/view-screen.ts +12 -6
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +4 -4
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +159 -41
- package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +8 -4
- package/corpus/templates/design/app/components/design/DrawOverlay.tsx +37 -42
- package/corpus/templates/design/app/components/design/EditPanel.tsx +336 -183
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +153 -34
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +135 -33
- package/corpus/templates/design/app/components/design/QuestionFlow.tsx +6 -0
- package/corpus/templates/design/app/components/design/TweaksPanel.tsx +2 -1
- package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +4 -10
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +84 -43
- package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +4 -4
- package/corpus/templates/design/app/components/design/inspector/{FigmaColorPicker.tsx → DesignColorPicker.tsx} +89 -62
- package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +14 -26
- package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +40 -12
- package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +13 -4
- package/corpus/templates/design/app/components/design/inspector/SHADER_INTEGRATION.md +13 -13
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +13 -9
- package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +13 -4
- package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +6 -6
- package/corpus/templates/design/app/components/design/inspector/{figma-icons.tsx → design-icons.tsx} +2 -2
- package/corpus/templates/design/app/components/design/inspector/index.ts +12 -12
- package/corpus/templates/design/app/components/design/inspector/scrub-input-utils.ts +5 -2
- package/corpus/templates/design/app/components/editor/PromptDialog.tsx +3 -3
- package/corpus/templates/design/app/components/layout/Layout.tsx +5 -2
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +1 -1
- package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +167 -91
- package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +16 -3
- package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +15 -0
- package/corpus/templates/design/app/global.css +4 -0
- package/corpus/templates/design/app/hooks/use-design-system.ts +4 -1
- package/corpus/templates/design/app/hooks/use-navigation-state.ts +38 -3
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +9 -2
- package/corpus/templates/design/app/i18n/zh-TW.ts +22 -0
- package/corpus/templates/design/app/i18n-data.ts +527 -0
- package/corpus/templates/design/app/lib/design-systems.ts +6 -4
- package/corpus/templates/design/app/lib/design-templates.ts +15 -3
- package/corpus/templates/design/app/pages/DesignEditor.tsx +641 -158
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +42 -34
- package/corpus/templates/design/app/pages/VisualEdit.tsx +100 -0
- package/corpus/templates/design/app/root.tsx +42 -9
- package/corpus/templates/design/app/routes/visual-edit.tsx +7 -0
- package/corpus/templates/design/changelog/2026-06-28-live-cursors-now-keep-names-beside-a-cleaner-pointer-marker.md +1 -1
- package/corpus/templates/design/changelog/2026-06-28-mode-switching-now-lives-in-a-compact-bottom-right-icon-dock.md +1 -1
- package/corpus/templates/design/changelog/2026-06-28-visual-code-design-mode.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-design-generation-prompts-now-show-connect-ai-before-sending.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-design-mode-top-chrome-now-groups-collaborators-preview-shar.md +1 -1
- package/corpus/templates/design/changelog/2026-06-29-fixed-design-editor-exports-and-gradient-edits-so-multi-scre.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-longer-hosted-agent-turns.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-png-export-handles-modern-css-color-functions-more-reliably.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-png-export-now-ignores-duplicate-clicks-while-a-download-is-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-public-visual-edit-and-shared-design-links-now-invite-visito.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-visual-edit-actions-now-reject-missing-design-targets-before.md +6 -0
- package/corpus/templates/design/e2e/README.md +71 -0
- package/corpus/templates/design/e2e/global-setup.ts +157 -0
- package/corpus/templates/design/e2e/helpers.ts +148 -0
- package/corpus/templates/design/netlify.toml +3 -4
- package/corpus/templates/design/package.json +5 -1
- package/corpus/templates/design/playwright.config.ts +51 -0
- package/corpus/templates/design/server/handlers/index-design-system-with-builder.ts +121 -0
- package/corpus/templates/design/server/handlers/uploads.ts +89 -38
- package/corpus/templates/design/server/lib/builder-design-system-proxy.ts +181 -0
- package/corpus/templates/design/server/lib/coding-handoff.ts +33 -4
- package/corpus/templates/design/server/lib/design-export.ts +35 -8
- package/corpus/templates/design/server/plugins/agent-chat.ts +4 -0
- package/corpus/templates/design/server/plugins/auth.ts +10 -1
- package/corpus/templates/design/server/routes/api/index-design-system-with-builder.post.ts +1 -0
- package/corpus/templates/design/shared/api.ts +2 -0
- package/corpus/templates/design/shared/apply-edits.ts +12 -8
- package/corpus/templates/design/shared/canvas-math.ts +19 -1
- package/corpus/templates/design/shared/code-layer.ts +87 -28
- package/corpus/templates/design/shared/generation-session.ts +1 -0
- package/corpus/templates/design/shared/resolve-tweaks.ts +4 -3
- package/corpus/templates/design/shared/shader-presets.ts +10 -0
- package/corpus/templates/design/shared/source-mode.ts +9 -0
- package/corpus/templates/design/vitest.config.ts +2 -1
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +1 -1
- package/corpus/templates/plan/.agents/skills/visual-plan/references/canvas.md +1 -1
- package/corpus/templates/plan/AGENTS.md +1 -1
- package/corpus/templates/plan/actions/create-plan-design.ts +1 -1
- package/corpus/templates/plan/actions/validate-local-plan-source.ts +2 -10
- package/corpus/templates/plan/app/pages/PlansPage.tsx +1 -0
- package/corpus/templates/plan/docs/commenting-ux-plan.md +2 -2
- package/corpus/templates/plan/server/plan-content.ts +1 -1
- package/corpus/templates/plan/server/ui-plan-html.ts +2 -2
- package/corpus/templates/slides/actions/index-design-system-with-builder.ts +6 -153
- package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +53 -38
- package/corpus/templates/slides/app/components/design-system/{fig-import-response.ts → builder-index-response.ts} +9 -6
- package/corpus/templates/slides/app/components/visual-editor/MultiSelectChip.tsx +1 -1
- package/corpus/templates/slides/changelog/2026-06-29-design-system-setup-now-indexes-uploaded-design-files-throug.md +6 -0
- package/corpus/templates/slides/changelog/2026-06-29-longer-hosted-agent-turns.md +6 -0
- package/corpus/templates/slides/netlify.toml +3 -6
- package/corpus/templates/slides/server/handlers/index-design-system-with-builder.ts +116 -0
- package/corpus/templates/slides/server/lib/builder-design-system-proxy.ts +179 -0
- package/corpus/templates/slides/server/plugins/agent-chat.ts +4 -1
- package/corpus/templates/slides/server/routes/api/index-design-system-with-builder.post.ts +1 -0
- package/dist/action.d.ts +15 -0
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js +6 -0
- package/dist/action.js.map +1 -1
- package/dist/agent/durable-background.d.ts +9 -7
- package/dist/agent/durable-background.d.ts.map +1 -1
- package/dist/agent/durable-background.js +27 -11
- package/dist/agent/durable-background.js.map +1 -1
- package/dist/agent/production-agent.d.ts +7 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +4 -1
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-loop-with-resume.d.ts +2 -1
- package/dist/agent/run-loop-with-resume.d.ts.map +1 -1
- package/dist/agent/run-loop-with-resume.js +2 -2
- package/dist/agent/run-loop-with-resume.js.map +1 -1
- package/dist/brand-kit/fig/index.d.ts +4 -4
- package/dist/brand-kit/fig/index.d.ts.map +1 -1
- package/dist/brand-kit/fig/index.js +14 -27
- package/dist/brand-kit/fig/index.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +1 -0
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/mcp-config-writers.d.ts +15 -7
- package/dist/cli/mcp-config-writers.d.ts.map +1 -1
- package/dist/cli/mcp-config-writers.js +198 -45
- package/dist/cli/mcp-config-writers.js.map +1 -1
- package/dist/cli/skills.d.ts +1 -1
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +18 -3
- package/dist/cli/skills.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +11 -1
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js +15 -2
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/composer/PromptComposer.d.ts.map +1 -1
- package/dist/client/composer/PromptComposer.js +35 -1
- package/dist/client/composer/PromptComposer.js.map +1 -1
- package/dist/client/org/OrgSwitcher.js +1 -1
- package/dist/client/org/OrgSwitcher.js.map +1 -1
- package/dist/client/sharing/ShareButton.d.ts +1 -1
- package/dist/client/sharing/ShareButton.d.ts.map +1 -1
- package/dist/client/sharing/ShareButton.js +2 -15
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/collab/presence.d.ts +1 -1
- package/dist/collab/presence.js +1 -1
- package/dist/collab/presence.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +2 -2
- package/dist/mcp/connect-route.d.ts.map +1 -1
- package/dist/mcp/connect-route.js +34 -5
- package/dist/mcp/connect-route.js.map +1 -1
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts +8 -8
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +5 -0
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +6 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +12 -3
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/sharing/registry.d.ts.map +1 -1
- package/dist/sharing/registry.js +11 -0
- package/dist/sharing/registry.js.map +1 -1
- package/dist/templates/default/pnpm-workspace.yaml +1 -0
- package/dist/templates/workspace-root/pnpm-workspace.yaml +1 -0
- package/docs/content/locales/ar-SA/real-time-collaboration.mdx +2 -2
- package/docs/content/locales/ar-SA/template-design.mdx +1 -1
- package/docs/content/locales/de-DE/real-time-collaboration.mdx +3 -3
- package/docs/content/locales/de-DE/template-design.mdx +1 -1
- package/docs/content/locales/es-ES/real-time-collaboration.mdx +2 -2
- package/docs/content/locales/es-ES/template-design.mdx +1 -1
- package/docs/content/locales/fr-FR/real-time-collaboration.mdx +2 -2
- package/docs/content/locales/fr-FR/template-design.mdx +1 -1
- package/docs/content/locales/hi-IN/template-design.mdx +1 -1
- package/docs/content/locales/ja-JP/real-time-collaboration.mdx +2 -2
- package/docs/content/locales/ja-JP/template-design.mdx +1 -1
- package/docs/content/locales/ko-KR/real-time-collaboration.mdx +2 -2
- package/docs/content/locales/ko-KR/template-design.mdx +1 -1
- package/docs/content/locales/pt-BR/real-time-collaboration.mdx +2 -2
- package/docs/content/locales/pt-BR/template-design.mdx +1 -1
- package/docs/content/locales/zh-CN/real-time-collaboration.mdx +2 -2
- package/docs/content/locales/zh-CN/template-design.mdx +1 -1
- package/docs/content/locales/zh-TW/real-time-collaboration.mdx +2 -2
- package/docs/content/locales/zh-TW/template-design.mdx +1 -1
- package/docs/content/real-time-collaboration.mdx +2 -2
- package/docs/content/template-design.mdx +1 -1
- package/package.json +3 -7
- package/src/templates/default/pnpm-workspace.yaml +1 -0
- package/src/templates/workspace-root/pnpm-workspace.yaml +1 -0
- package/corpus/core/src/brand-kit/fig/decode.ts +0 -410
- package/corpus/core/src/brand-kit/fig/extract-design-system.ts +0 -947
- package/corpus/core/src/brand-kit/fig/fig-to-html.ts +0 -1906
- package/corpus/templates/design/actions/import-figma.ts +0 -55
- package/corpus/templates/design/changelog/2026-06-28-figma-style-code-design-mode.md +0 -6
- package/corpus/templates/design/server/handlers/import-figma-system.ts +0 -86
- package/corpus/templates/design/server/routes/api/import-figma-system.post.ts +0 -1
- package/corpus/templates/slides/server/handlers/import-figma-system.ts +0 -101
- package/corpus/templates/slides/server/routes/api/import-figma-system.post.ts +0 -1
- package/dist/brand-kit/fig/decode.d.ts +0 -33
- package/dist/brand-kit/fig/decode.d.ts.map +0 -1
- package/dist/brand-kit/fig/decode.js +0 -358
- package/dist/brand-kit/fig/decode.js.map +0 -1
- package/dist/brand-kit/fig/extract-design-system.d.ts +0 -44
- package/dist/brand-kit/fig/extract-design-system.d.ts.map +0 -1
- package/dist/brand-kit/fig/extract-design-system.js +0 -752
- package/dist/brand-kit/fig/extract-design-system.js.map +0 -1
- package/dist/brand-kit/fig/fig-to-html.d.ts +0 -246
- package/dist/brand-kit/fig/fig-to-html.d.ts.map +0 -1
- package/dist/brand-kit/fig/fig-to-html.js +0 -1506
- package/dist/brand-kit/fig/fig-to-html.js.map +0 -1
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
BUILDER_CMS_SAFE_WRITE_MODEL,
|
|
3
3
|
type ContentDatabaseSourceCapabilities,
|
|
4
4
|
type ContentDatabaseSourcePushMode,
|
|
5
|
+
type ContentDatabaseSourceWriteMode,
|
|
5
6
|
} from "../shared/api.js";
|
|
6
7
|
|
|
7
8
|
export type BuilderCmsLiveWriteMode = Exclude<
|
|
@@ -14,7 +15,9 @@ export interface BuilderCmsWriteSettingsPatch {
|
|
|
14
15
|
sourceTable: string;
|
|
15
16
|
capabilitiesJson: string;
|
|
16
17
|
metadataJson: string;
|
|
17
|
-
liveWritesEnabled
|
|
18
|
+
liveWritesEnabled?: boolean;
|
|
19
|
+
writeMode?: ContentDatabaseSourceWriteMode;
|
|
20
|
+
allowPublicationTransitions?: boolean;
|
|
18
21
|
allowedWriteModes?: BuilderCmsLiveWriteMode[];
|
|
19
22
|
allowDraftWrites?: boolean;
|
|
20
23
|
allowPublishWrites?: boolean;
|
|
@@ -40,6 +43,16 @@ function normalizeMode(value: unknown): BuilderCmsLiveWriteMode | null {
|
|
|
40
43
|
: null;
|
|
41
44
|
}
|
|
42
45
|
|
|
46
|
+
function normalizeWriteMode(
|
|
47
|
+
value: unknown,
|
|
48
|
+
): ContentDatabaseSourceWriteMode | null {
|
|
49
|
+
return value === "read_only" ||
|
|
50
|
+
value === "stage_only" ||
|
|
51
|
+
value === "publish_updates"
|
|
52
|
+
? value
|
|
53
|
+
: null;
|
|
54
|
+
}
|
|
55
|
+
|
|
43
56
|
function uniqueModes(
|
|
44
57
|
modes: readonly BuilderCmsLiveWriteMode[] | undefined,
|
|
45
58
|
): BuilderCmsLiveWriteMode[] {
|
|
@@ -50,25 +63,100 @@ function uniqueModes(
|
|
|
50
63
|
return unique;
|
|
51
64
|
}
|
|
52
65
|
|
|
66
|
+
function legacyWriteModeFromStored(args: {
|
|
67
|
+
liveWritesEnabled: boolean;
|
|
68
|
+
allowedWriteModes: readonly BuilderCmsLiveWriteMode[];
|
|
69
|
+
pushMode?: unknown;
|
|
70
|
+
}): ContentDatabaseSourceWriteMode {
|
|
71
|
+
if (!args.liveWritesEnabled) return "read_only";
|
|
72
|
+
const pushMode = normalizeMode(args.pushMode);
|
|
73
|
+
return args.allowedWriteModes.some((mode) => mode !== "autosave") ||
|
|
74
|
+
(pushMode && pushMode !== "autosave")
|
|
75
|
+
? "publish_updates"
|
|
76
|
+
: "stage_only";
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function writeModeFromPatch(
|
|
80
|
+
args: BuilderCmsWriteSettingsPatch,
|
|
81
|
+
): ContentDatabaseSourceWriteMode {
|
|
82
|
+
const explicit = normalizeWriteMode(args.writeMode);
|
|
83
|
+
if (args.writeMode !== undefined && !explicit) {
|
|
84
|
+
throw new Error("Choose a valid Builder write mode.");
|
|
85
|
+
}
|
|
86
|
+
if (explicit) return explicit;
|
|
87
|
+
if (args.liveWritesEnabled === false) return "read_only";
|
|
88
|
+
if (args.liveWritesEnabled === true) {
|
|
89
|
+
const allowed = uniqueModes(args.allowedWriteModes);
|
|
90
|
+
return allowed.some((mode) => mode !== "autosave")
|
|
91
|
+
? "publish_updates"
|
|
92
|
+
: "stage_only";
|
|
93
|
+
}
|
|
94
|
+
const metadata = parseRecord(args.metadataJson);
|
|
95
|
+
const capabilities = parseRecord(args.capabilitiesJson);
|
|
96
|
+
const allowedWriteModes = Array.isArray(metadata.allowedWriteModes)
|
|
97
|
+
? uniqueModes(
|
|
98
|
+
metadata.allowedWriteModes
|
|
99
|
+
.map(normalizeMode)
|
|
100
|
+
.filter((mode): mode is BuilderCmsLiveWriteMode => !!mode),
|
|
101
|
+
)
|
|
102
|
+
: [];
|
|
103
|
+
return (
|
|
104
|
+
normalizeWriteMode(metadata.writeMode) ??
|
|
105
|
+
legacyWriteModeFromStored({
|
|
106
|
+
liveWritesEnabled: capabilities.liveWritesEnabled === true,
|
|
107
|
+
allowedWriteModes,
|
|
108
|
+
pushMode: metadata.pushMode,
|
|
109
|
+
})
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function allowedWriteModesForTier(
|
|
114
|
+
writeMode: ContentDatabaseSourceWriteMode,
|
|
115
|
+
): BuilderCmsLiveWriteMode[] {
|
|
116
|
+
if (writeMode === "stage_only") return ["autosave"];
|
|
117
|
+
if (writeMode === "publish_updates") return ["autosave", "publish"];
|
|
118
|
+
return [];
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function pushModeForTier(
|
|
122
|
+
writeMode: ContentDatabaseSourceWriteMode,
|
|
123
|
+
): ContentDatabaseSourcePushMode {
|
|
124
|
+
if (writeMode === "stage_only") return "autosave";
|
|
125
|
+
if (writeMode === "publish_updates") return "publish";
|
|
126
|
+
return "none";
|
|
127
|
+
}
|
|
128
|
+
|
|
53
129
|
export function builderCmsWriteSettingsFromJson(args: {
|
|
54
130
|
capabilitiesJson: string | null | undefined;
|
|
55
131
|
metadataJson: string | null | undefined;
|
|
56
132
|
}) {
|
|
57
133
|
const capabilities = parseRecord(args.capabilitiesJson);
|
|
58
134
|
const metadata = parseRecord(args.metadataJson);
|
|
59
|
-
const
|
|
135
|
+
const legacyAllowedWriteModes = Array.isArray(metadata.allowedWriteModes)
|
|
60
136
|
? uniqueModes(
|
|
61
137
|
metadata.allowedWriteModes
|
|
62
138
|
.map(normalizeMode)
|
|
63
139
|
.filter((mode): mode is BuilderCmsLiveWriteMode => !!mode),
|
|
64
140
|
)
|
|
65
141
|
: [];
|
|
142
|
+
const writeMode =
|
|
143
|
+
normalizeWriteMode(metadata.writeMode) ??
|
|
144
|
+
legacyWriteModeFromStored({
|
|
145
|
+
liveWritesEnabled: capabilities.liveWritesEnabled === true,
|
|
146
|
+
allowedWriteModes: legacyAllowedWriteModes,
|
|
147
|
+
pushMode: metadata.pushMode,
|
|
148
|
+
});
|
|
149
|
+
const allowedWriteModes = allowedWriteModesForTier(writeMode);
|
|
66
150
|
|
|
67
151
|
return {
|
|
68
|
-
|
|
152
|
+
writeMode,
|
|
153
|
+
liveWritesEnabled: writeMode !== "read_only",
|
|
69
154
|
allowedWriteModes,
|
|
70
|
-
|
|
71
|
-
|
|
155
|
+
allowPublicationTransitions:
|
|
156
|
+
writeMode === "publish_updates" &&
|
|
157
|
+
metadata.allowPublicationTransitions === true,
|
|
158
|
+
allowDraftWrites: false,
|
|
159
|
+
allowPublishWrites: writeMode === "publish_updates",
|
|
72
160
|
};
|
|
73
161
|
}
|
|
74
162
|
|
|
@@ -77,8 +165,14 @@ export function buildBuilderCmsWriteModeJson(
|
|
|
77
165
|
) {
|
|
78
166
|
const capabilities = parseRecord(args.capabilitiesJson);
|
|
79
167
|
const metadata = parseRecord(args.metadataJson);
|
|
168
|
+
const writeMode = writeModeFromPatch(args);
|
|
169
|
+
const enabled = writeMode !== "read_only";
|
|
170
|
+
const allowPublicationTransitions =
|
|
171
|
+
enabled &&
|
|
172
|
+
writeMode === "publish_updates" &&
|
|
173
|
+
args.allowPublicationTransitions === true;
|
|
80
174
|
|
|
81
|
-
if (
|
|
175
|
+
if (enabled) {
|
|
82
176
|
if (args.sourceType !== "builder-cms") {
|
|
83
177
|
throw new Error(
|
|
84
178
|
"Live writes can only be enabled for Builder CMS sources.",
|
|
@@ -91,50 +185,28 @@ export function buildBuilderCmsWriteModeJson(
|
|
|
91
185
|
}
|
|
92
186
|
}
|
|
93
187
|
|
|
94
|
-
const enabled = args.liveWritesEnabled === true;
|
|
95
|
-
const allowedWriteModes = enabled ? uniqueModes(args.allowedWriteModes) : [];
|
|
96
|
-
if (args.liveWritesEnabled && allowedWriteModes.length === 0) {
|
|
97
|
-
throw new Error(
|
|
98
|
-
"Choose at least one allowed Builder write mode before enabling live writes.",
|
|
99
|
-
);
|
|
100
|
-
}
|
|
101
188
|
if (
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
args.allowDraftWrites !== true
|
|
105
|
-
) {
|
|
106
|
-
throw new Error("Draft writes require explicit draft opt-in.");
|
|
107
|
-
}
|
|
108
|
-
if (
|
|
109
|
-
enabled &&
|
|
110
|
-
allowedWriteModes.includes("publish") &&
|
|
111
|
-
args.allowPublishWrites !== true
|
|
189
|
+
args.allowPublicationTransitions === true &&
|
|
190
|
+
writeMode !== "publish_updates"
|
|
112
191
|
) {
|
|
113
|
-
throw new Error("
|
|
192
|
+
throw new Error("Publication transitions require publish updates mode.");
|
|
114
193
|
}
|
|
115
194
|
|
|
195
|
+
const allowedWriteModes = allowedWriteModesForTier(writeMode);
|
|
116
196
|
const nextCapabilities: Partial<ContentDatabaseSourceCapabilities> = {
|
|
117
197
|
...capabilities,
|
|
118
198
|
liveWritesEnabled: enabled,
|
|
119
199
|
};
|
|
120
200
|
const nextMetadata: Record<string, unknown> = {
|
|
121
201
|
...metadata,
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
202
|
+
writeMode,
|
|
203
|
+
allowPublicationTransitions,
|
|
204
|
+
allowedWriteModes,
|
|
205
|
+
allowDraftWrites: false,
|
|
206
|
+
allowPublishWrites: writeMode === "publish_updates",
|
|
207
|
+
pushMode: pushModeForTier(writeMode),
|
|
125
208
|
};
|
|
126
209
|
|
|
127
|
-
if (
|
|
128
|
-
enabled &&
|
|
129
|
-
(!nextMetadata.pushMode ||
|
|
130
|
-
nextMetadata.pushMode === "none" ||
|
|
131
|
-
!allowedWriteModes.includes(
|
|
132
|
-
normalizeMode(nextMetadata.pushMode) ?? "autosave",
|
|
133
|
-
))
|
|
134
|
-
) {
|
|
135
|
-
nextMetadata.pushMode = allowedWriteModes[0];
|
|
136
|
-
}
|
|
137
|
-
|
|
138
210
|
return {
|
|
139
211
|
capabilitiesJson: JSON.stringify(nextCapabilities),
|
|
140
212
|
metadataJson: JSON.stringify(nextMetadata),
|
|
@@ -155,7 +227,7 @@ export function mergeBuilderCmsWriteSettingsIntoJson(args: {
|
|
|
155
227
|
if (
|
|
156
228
|
currentSettings.liveWritesEnabled !== true ||
|
|
157
229
|
args.sourceTable !== BUILDER_CMS_SAFE_WRITE_MODEL ||
|
|
158
|
-
currentSettings.
|
|
230
|
+
currentSettings.writeMode === "read_only"
|
|
159
231
|
) {
|
|
160
232
|
return {
|
|
161
233
|
capabilitiesJson: args.nextCapabilitiesJson,
|
|
@@ -168,9 +240,19 @@ export function mergeBuilderCmsWriteSettingsIntoJson(args: {
|
|
|
168
240
|
sourceTable: args.sourceTable,
|
|
169
241
|
capabilitiesJson: args.nextCapabilitiesJson,
|
|
170
242
|
metadataJson: args.nextMetadataJson,
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
allowDraftWrites: currentSettings.allowDraftWrites,
|
|
174
|
-
allowPublishWrites: currentSettings.allowPublishWrites,
|
|
243
|
+
writeMode: currentSettings.writeMode,
|
|
244
|
+
allowPublicationTransitions: currentSettings.allowPublicationTransitions,
|
|
175
245
|
});
|
|
176
246
|
}
|
|
247
|
+
|
|
248
|
+
export function builderCmsAllowedWriteModesForTier(
|
|
249
|
+
writeMode: ContentDatabaseSourceWriteMode,
|
|
250
|
+
) {
|
|
251
|
+
return allowedWriteModesForTier(writeMode);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
export function builderCmsPushModeForTier(
|
|
255
|
+
writeMode: ContentDatabaseSourceWriteMode,
|
|
256
|
+
) {
|
|
257
|
+
return pushModeForTier(writeMode);
|
|
258
|
+
}
|