@agent-native/core 0.92.10 → 0.92.12
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 +1 -1
- package/corpus/core/CHANGELOG.md +29 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/agent/production-agent.ts +214 -17
- package/corpus/core/src/agent/run-manager.ts +72 -14
- package/corpus/core/src/agent/run-store.ts +152 -27
- package/corpus/core/src/cli/design-connect.ts +433 -151
- package/corpus/core/src/cli/skills.ts +14 -0
- package/corpus/core/src/client/AssistantChat.tsx +25 -0
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +40 -6
- package/corpus/core/src/client/agent-chat-adapter.ts +56 -12
- package/corpus/core/src/client/agent-chat.ts +165 -1
- package/corpus/core/src/client/chat/index.ts +9 -1
- package/corpus/core/src/client/extensions/EmbeddedExtension.tsx +38 -2
- package/corpus/core/src/client/index.ts +5 -0
- package/corpus/core/src/client/rich-markdown-editor/useCollabReconcile.ts +18 -7
- package/corpus/core/src/collab/awareness-store.ts +23 -12
- package/corpus/core/src/collab/client.ts +16 -5
- package/corpus/core/src/collab/index.ts +4 -0
- package/corpus/core/src/collab/recent-edits.ts +65 -2
- package/corpus/core/src/index.browser.ts +1 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +98 -11
- package/corpus/core/src/server/builder-design-systems.ts +30 -4
- package/corpus/templates/clips/.agents/skills/ai-video-tools/SKILL.md +1 -1
- package/corpus/templates/clips/.agents/skills/video-sharing/SKILL.md +12 -6
- package/corpus/templates/clips/AGENTS.md +4 -0
- package/corpus/templates/clips/actions/create-recording.ts +2 -0
- package/corpus/templates/clips/actions/lib/create-recording-schema.ts +5 -3
- package/corpus/templates/clips/actions/request-transcript.ts +102 -33
- package/corpus/templates/clips/app/components/library/library-grid.tsx +1 -0
- package/corpus/templates/clips/app/components/player/share-dialog.tsx +59 -19
- package/corpus/templates/clips/app/components/player/transcript-panel.tsx +75 -9
- package/corpus/templates/clips/app/components/player/video-player.tsx +17 -12
- package/corpus/templates/clips/app/hooks/use-player-shortcuts.ts +1 -0
- package/corpus/templates/clips/app/i18n/ar-SA.ts +1 -0
- package/corpus/templates/clips/app/i18n/de-DE.ts +1 -0
- package/corpus/templates/clips/app/i18n/en-US.ts +1 -0
- package/corpus/templates/clips/app/i18n/es-ES.ts +1 -0
- package/corpus/templates/clips/app/i18n/fr-FR.ts +1 -0
- package/corpus/templates/clips/app/i18n/hi-IN.ts +1 -0
- package/corpus/templates/clips/app/i18n/ja-JP.ts +1 -0
- package/corpus/templates/clips/app/i18n/ko-KR.ts +1 -0
- package/corpus/templates/clips/app/i18n/pt-BR.ts +1 -0
- package/corpus/templates/clips/app/i18n/zh-CN.ts +1 -0
- package/corpus/templates/clips/app/i18n/zh-TW.ts +1 -0
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +70 -37
- package/corpus/templates/clips/app/routes/record.tsx +17 -4
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +2 -0
- package/corpus/templates/clips/changelog/2026-07-09-desktop-popover-sits-closer-to-the-menu-bar.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-09-desktop-recording-optimization-progress-stays-visible-until-the-clip-opens.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-09-fixed-large-video-file-uploads-failing-before-their-resumabl.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-09-fixed-new-video-uploads-defaulting-to-private.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-09-long-recordings-now-get-enough-time-to-download-their-media-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-09-meeting-notes-no-longer-lowers-your-microphone-volume-for-ot.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-09-on-mobile-tapping-a-playing-clip-reveals-playback-controls-w.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-09-regenerate-any-clip-transcript-from-its-saved-recording-or-r.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-09-slack-previews-now-show-the-clip-length-alongside-its-descri.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-fixed-copying-agent-responses-and-transcript-text-from-recor.md +6 -0
- package/corpus/templates/clips/desktop/src/app.tsx +12 -2
- package/corpus/templates/clips/desktop/src/hooks/useMeetingTranscription.ts +8 -1
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +8 -5
- package/corpus/templates/clips/desktop/src/lib/transcription-engine.ts +5 -5
- package/corpus/templates/clips/desktop/src/lib/voice-dictation.ts +3 -0
- package/corpus/templates/clips/desktop/src/styles.css +6 -3
- package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +29 -11
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +1 -1
- package/corpus/templates/clips/desktop/src-tauri/src/system_audio.rs +103 -21
- package/corpus/templates/clips/desktop/src-tauri/src/whisper_speech.rs +117 -39
- package/corpus/templates/clips/server/lib/slack-unfurls.ts +20 -1
- package/corpus/templates/clips/server/lib/streaming-upload-mode.ts +10 -4
- package/corpus/templates/clips/shared/recording-core.ts +12 -0
- package/corpus/templates/content/AGENTS.md +7 -6
- package/corpus/templates/content/actions/_builder-cms-read-client.ts +82 -7
- package/corpus/templates/content/actions/_database-source-utils.ts +149 -30
- package/corpus/templates/content/actions/_document-flush.ts +132 -17
- package/corpus/templates/content/actions/_notion-action-utils.ts +15 -0
- package/corpus/templates/content/actions/add-content-database-source-field-property.ts +4 -7
- package/corpus/templates/content/actions/attach-content-database-source.ts +41 -17
- package/corpus/templates/content/actions/change-content-database-source-role.ts +46 -8
- package/corpus/templates/content/actions/create-and-link-notion-page.ts +2 -0
- package/corpus/templates/content/actions/link-notion-page.ts +2 -0
- package/corpus/templates/content/actions/pull-document.ts +5 -7
- package/corpus/templates/content/actions/pull-notion-page.ts +2 -0
- package/corpus/templates/content/actions/push-notion-page.ts +10 -0
- package/corpus/templates/content/actions/resolve-notion-sync-conflict.ts +2 -0
- package/corpus/templates/content/actions/suggest-source-join-key.ts +8 -1
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +88 -23
- package/corpus/templates/content/app/components/editor/VisualEditor.tsx +32 -2
- package/corpus/templates/content/app/hooks/use-notion.ts +6 -6
- package/corpus/templates/content/app/i18n/zh-TW.ts +1 -0
- package/corpus/templates/content/app/i18n-data.ts +18 -0
- package/corpus/templates/content/changelog/2026-07-09-builder-source-refreshes-now-keep-mapped-fields-such-as-topi.md +6 -0
- package/corpus/templates/content/changelog/2026-07-09-notion-conflict-choices-and-version-restores-preserve-docume.md +6 -0
- package/corpus/templates/content/server/lib/notion-sync.ts +80 -64
- package/corpus/templates/content/shared/api.ts +1 -0
- package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +29 -2
- package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +86 -0
- package/corpus/templates/design/.agents/skills/export-handoff/SKILL.md +57 -0
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +11 -0
- package/corpus/templates/design/AGENTS.md +45 -10
- package/corpus/templates/design/actions/add-localhost-screens.ts +66 -13
- package/corpus/templates/design/actions/apply-component-prop-edit.ts +45 -36
- package/corpus/templates/design/actions/apply-motion-edit.ts +25 -31
- package/corpus/templates/design/actions/apply-shader-fill.ts +29 -42
- package/corpus/templates/design/actions/detach-component-instance.ts +337 -0
- package/corpus/templates/design/actions/export-design-as-figma-svg.ts +219 -0
- package/corpus/templates/design/actions/generate-design.ts +79 -12
- package/corpus/templates/design/actions/generate-screens.ts +57 -12
- package/corpus/templates/design/actions/get-figma-styles.ts +115 -0
- package/corpus/templates/design/actions/go-to-main-component.ts +254 -0
- package/corpus/templates/design/actions/grant-localhost-write-consent.ts +4 -3
- package/corpus/templates/design/actions/import-design-source.ts +4 -31
- package/corpus/templates/design/actions/import-figma-clipboard.ts +134 -0
- package/corpus/templates/design/actions/import-figma-frame.ts +95 -0
- package/corpus/templates/design/actions/index-design-system-with-builder.ts +16 -1
- package/corpus/templates/design/actions/list-design-components.ts +104 -0
- package/corpus/templates/design/actions/list-figma-library-assets.ts +1 -24
- package/corpus/templates/design/actions/open-component-source.ts +2 -4
- package/corpus/templates/design/actions/present-design-variants.ts +412 -16
- package/corpus/templates/design/actions/preview-source-edit.ts +14 -1
- package/corpus/templates/design/actions/run-design-audit.ts +25 -3
- package/corpus/templates/design/actions/show-design-questions.ts +10 -0
- package/corpus/templates/design/actions/swap-component-instance.ts +544 -0
- package/corpus/templates/design/actions/take-design-screenshot.ts +45 -60
- package/corpus/templates/design/actions/write-local-file.ts +25 -1
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +152 -0
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +1077 -58
- package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +5 -5
- package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +73 -21
- package/corpus/templates/design/app/components/design/EditPanel.tsx +16 -11
- package/corpus/templates/design/app/components/design/KeyboardShortcutsPanel.tsx +364 -0
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +180 -53
- package/corpus/templates/design/app/components/design/LocalhostWriteConsentDialog.tsx +0 -2
- package/corpus/templates/design/app/components/design/MotionDock.tsx +144 -21
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +1152 -167
- package/corpus/templates/design/app/components/design/QuestionFlow.tsx +27 -5
- package/corpus/templates/design/app/components/design/ReviewPanel.tsx +23 -2
- package/corpus/templates/design/app/components/design/TokensPanel.tsx +63 -49
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +1293 -54
- package/corpus/templates/design/app/components/design/bridge/embedded-wheel.bridge.ts +7 -0
- package/corpus/templates/design/app/components/design/bridge/hit-test.bridge.ts +6 -1
- package/corpus/templates/design/app/components/design/bridge/motion-preview.bridge.ts +23 -6
- package/corpus/templates/design/app/components/design/bridge/sample.bridge.ts +7 -0
- package/corpus/templates/design/app/components/design/code-workbench/CodeWorkbench.tsx +5 -0
- package/corpus/templates/design/app/components/design/code-workbench/editor/MonacoHost.tsx +14 -2
- package/corpus/templates/design/app/components/design/code-workbench/explorer/FileTree.tsx +37 -2
- package/corpus/templates/design/app/components/design/code-workbench/format/format-on-open-guard.ts +25 -0
- package/corpus/templates/design/app/components/design/code-workbench/format/format-on-open.ts +19 -1
- package/corpus/templates/design/app/components/design/code-workbench/model-registry.ts +43 -5
- package/corpus/templates/design/app/components/design/code-workbench/search/SearchView.tsx +27 -2
- package/corpus/templates/design/app/components/design/code-workbench/search/search-engine.ts +10 -1
- package/corpus/templates/design/app/components/design/code-workbench/store.tsx +19 -2
- package/corpus/templates/design/app/components/design/design-canvas/annotation-snapshot.ts +265 -0
- package/corpus/templates/design/app/components/design/design-canvas/annotation-submit.ts +16 -5
- package/corpus/templates/design/app/components/design/design-canvas/coordinate-transforms.ts +16 -2
- package/corpus/templates/design/app/components/design/design-canvas/embedded-frame.ts +7 -2
- package/corpus/templates/design/app/components/design/design-canvas/iframe-events.ts +3 -1
- package/corpus/templates/design/app/components/design/edit-panel/code-inspect-helpers.tsx +78 -8
- package/corpus/templates/design/app/components/design/edit-panel/component-section.tsx +451 -73
- package/corpus/templates/design/app/components/design/edit-panel/document-colors.ts +12 -4
- package/corpus/templates/design/app/components/design/edit-panel/effects-properties.tsx +398 -272
- package/corpus/templates/design/app/components/design/edit-panel/element-classification.ts +41 -7
- package/corpus/templates/design/app/components/design/edit-panel/element-identity.ts +16 -3
- package/corpus/templates/design/app/components/design/edit-panel/field-primitives.tsx +24 -4
- package/corpus/templates/design/app/components/design/edit-panel/fill-gradient-helpers.ts +222 -4
- package/corpus/templates/design/app/components/design/edit-panel/fill-properties.tsx +171 -78
- package/corpus/templates/design/app/components/design/edit-panel/inspector-controls.tsx +45 -5
- package/corpus/templates/design/app/components/design/edit-panel/layout-properties.tsx +299 -28
- package/corpus/templates/design/app/components/design/edit-panel/panel-primitives.tsx +120 -150
- package/corpus/templates/design/app/components/design/edit-panel/position-helpers.ts +53 -1
- package/corpus/templates/design/app/components/design/edit-panel/position-layout-properties.tsx +284 -117
- package/corpus/templates/design/app/components/design/edit-panel/selection-helpers.ts +81 -0
- package/corpus/templates/design/app/components/design/edit-panel/stroke-properties.tsx +19 -14
- package/corpus/templates/design/app/components/design/edit-panel/style-options.ts +7 -0
- package/corpus/templates/design/app/components/design/edit-panel/typography-helpers.ts +155 -0
- package/corpus/templates/design/app/components/design/edit-panel/typography-properties.tsx +268 -46
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +350 -31
- package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +13 -4
- package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +233 -23
- package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +72 -2
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +51 -11
- package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +84 -11
- package/corpus/templates/design/app/components/design/inspector/index.ts +3 -0
- package/corpus/templates/design/app/components/design/keyboard-shortcuts.ts +552 -0
- package/corpus/templates/design/app/components/design/multi-screen/board-surface-html.ts +157 -0
- package/corpus/templates/design/app/components/design/multi-screen/frame-geometry.ts +53 -0
- package/corpus/templates/design/app/components/design/multi-screen/overview-layout.ts +184 -0
- package/corpus/templates/design/app/components/design/multi-screen/primitive-drop-target.ts +403 -26
- package/corpus/templates/design/app/components/design/multi-screen/types.ts +20 -1
- package/corpus/templates/design/app/components/design/types.ts +33 -0
- package/corpus/templates/design/app/components/editor/PromptDialog.tsx +59 -7
- package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +119 -17
- package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +275 -63
- package/corpus/templates/design/app/hooks/use-question-flow.ts +14 -3
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +67 -10
- package/corpus/templates/design/app/i18n/zh-TW.ts +91 -1
- package/corpus/templates/design/app/i18n-data.ts +1217 -10
- package/corpus/templates/design/app/i18n-keyboard-shortcuts.ts +577 -0
- package/corpus/templates/design/app/lib/agent-chat.ts +23 -0
- package/corpus/templates/design/app/lib/design-import.ts +24 -0
- package/corpus/templates/design/app/lib/figma-clipboard.ts +157 -0
- package/corpus/templates/design/app/lib/figma-svg-copy.ts +221 -0
- package/corpus/templates/design/app/pages/design-editor/code-layer-state.ts +143 -30
- package/corpus/templates/design/app/pages/design-editor/collab-sync.ts +15 -0
- package/corpus/templates/design/app/pages/design-editor/editor-session.ts +33 -0
- package/corpus/templates/design/app/pages/design-editor/editor-state.ts +38 -0
- package/corpus/templates/design/app/pages/design-editor/overview-annotation-context.ts +157 -0
- package/corpus/templates/design/app/pages/design-editor/overview-camera.ts +62 -6
- package/corpus/templates/design/app/pages/design-editor/pending-edits.ts +245 -0
- package/corpus/templates/design/app/pages/design-editor/react-semantic-handoff.ts +586 -0
- package/corpus/templates/design/app/pages/design-editor/screen-auto-layout.ts +169 -0
- package/corpus/templates/design/app/pages/design-editor/selection-state.ts +201 -1
- package/corpus/templates/design/changelog/2026-07-09-added-underline-strikethrough-and-text-case-uppercase-lowerc.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-annotate-now-draws-across-the-all-screens-canvas-without-swi.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-auto-layout-children-can-now-be-dragged-into-freeform-screen.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-board-shapes-now-stay-visible-and-nest-correctly-across-the-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-component-source-navigation-now-opens-reliably-from-the-insp.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-cross-screen-local-react-layer-moves-now-hand-off-exact-sour.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-cross-screen-moves-undo-and-redo-now-keep-both-screens-stabl.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-detach-a-component-instance-into-plain-editable-eleme.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-dragging-layers-into-auto-layout-now-respects-ignore-auto-la.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-drawing-annotations-sent-to-the-agent-now-include-a-rendered.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-editor-sidebars-now-use-figma-matched-default-widths-for-a-r.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-empty-frames-and-rectangles-now-expose-full-auto-layout-cont.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-export-any-design-screen-as-a-real-vector-svg-for-figma-with.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-grid-auto-layout-now-uses-true-responsive-rows-and-columns-w.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-hidden-and-locked-screens-now-behave-consistently-between-la.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-image-fills-now-preserve-valid-urls-and-layered-fit-settings.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-import-figma-frames-as-pixel-accurate-design-screens-via-a-s.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-inspect-code-now-hides-internal-styling-metadata-and-wraps-l.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-inspector-blur-and-shadow-effects-now-preserve-other-effects.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-jump-to-a-components-other-instances-from-the-inspecto.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-keyboard-shortcuts-are-now-discoverable-in-a-figma-style-bot.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-layer-selection-now-keeps-cmd-or-ctrl-toggles-and-shift-rang.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-layers-dropped-into-auto-layout-now-participate-correctly-in.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-local-live-edit-screens-now-enter-and-leave-full-view-withou.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-local-preview-urls-now-live-in-the-inspector-instead-of-taki.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-local-react-layers-can-now-be-hidden-and-locked-from-layers-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-local-react-layers-now-keep-exact-source-provenance-and-supp.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-local-react-visual-editing-now-loads-reliably-and-shows-live.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-paste-from-figma-cmd-v-now-imports-exact-editable-nodes-when.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-pressing-escape-after-selecting-a-screen-now-reveals-page-pr.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-right-click-overlapping-or-nested-objects-to-choose-the-exac.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-scale-edge-stretch-and-center-constraints-now-preserve-layer.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-screen-rows-can-now-be-reordered-in-layers-with-matching-can.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-screen-selection-stays-responsive-in-designs-with-hundreds-o.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-shift-a-now-enables-auto-layout-on-a-selected-screen-with-fl.md +6 -0
- package/corpus/templates/design/changelog/2026-07-09-swap-a-component-instance-for-another-from-the-libra.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-drawing-annotations-now-stay-available-to-retry-when-the.md +6 -0
- package/corpus/templates/design/e2e/global-setup.ts +3 -6
- package/corpus/templates/design/e2e/helpers.ts +27 -6
- package/corpus/templates/design/server/lib/design-to-figma-svg.ts +1412 -0
- package/corpus/templates/design/server/lib/figma-clipboard-match.ts +196 -0
- package/corpus/templates/design/server/lib/figma-node-import.ts +311 -0
- package/corpus/templates/design/server/lib/figma-node-to-html.ts +1334 -0
- package/corpus/templates/design/server/lib/figma-paste-fallback.ts +64 -0
- package/corpus/templates/design/server/lib/playwright-runtime.ts +78 -0
- package/corpus/templates/design/server/plugins/db.ts +41 -0
- package/corpus/templates/design/server/source-workspace.ts +64 -0
- package/corpus/templates/design/shared/board-file.ts +13 -2
- package/corpus/templates/design/shared/canvas-math.ts +231 -33
- package/corpus/templates/design/shared/code-layer.ts +122 -8
- package/corpus/templates/design/shared/component-library.ts +161 -0
- package/corpus/templates/design/shared/db-conflict.ts +27 -0
- package/corpus/templates/design/shared/design-source-capabilities.ts +2 -1
- package/corpus/templates/design/shared/figma-url.ts +149 -0
- package/corpus/templates/design/shared/pen-path.ts +16 -7
- package/corpus/templates/design/shared/source-mode.ts +1 -0
- package/corpus/templates/plan/app/components/plan/CanvasArea.tsx +7 -19
- package/corpus/templates/plan/changelog/2026-07-09-canvas-panning-now-keeps-zoom-fixed-even-at-the-edges.md +6 -0
- package/corpus/templates/slides/actions/index-design-system-with-builder.ts +16 -1
- package/corpus/templates/slides/app/context/DeckContext.tsx +311 -70
- package/corpus/templates/slides/changelog/2026-07-09-fixed-the-slide-rail-going-permanently-stale-during-a-long-a.md +6 -0
- package/dist/agent/production-agent.d.ts +82 -7
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +180 -17
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +63 -14
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts +46 -0
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +129 -22
- package/dist/agent/run-store.js.map +1 -1
- package/dist/cli/design-connect.d.ts +6 -0
- package/dist/cli/design-connect.d.ts.map +1 -1
- package/dist/cli/design-connect.js +336 -139
- package/dist/cli/design-connect.js.map +1 -1
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +14 -0
- package/dist/cli/skills.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +2 -0
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +19 -3
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +38 -18
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +48 -12
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/agent-chat.d.ts +60 -0
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js +122 -1
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/chat/index.d.ts +1 -1
- package/dist/client/chat/index.d.ts.map +1 -1
- package/dist/client/chat/index.js +1 -1
- package/dist/client/chat/index.js.map +1 -1
- package/dist/client/extensions/EmbeddedExtension.d.ts +12 -0
- package/dist/client/extensions/EmbeddedExtension.d.ts.map +1 -1
- package/dist/client/extensions/EmbeddedExtension.js +36 -2
- package/dist/client/extensions/EmbeddedExtension.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/rich-markdown-editor/useCollabReconcile.d.ts.map +1 -1
- package/dist/client/rich-markdown-editor/useCollabReconcile.js +18 -6
- package/dist/client/rich-markdown-editor/useCollabReconcile.js.map +1 -1
- package/dist/collab/awareness-store.d.ts +5 -0
- package/dist/collab/awareness-store.d.ts.map +1 -1
- package/dist/collab/awareness-store.js +19 -12
- package/dist/collab/awareness-store.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/client.d.ts.map +1 -1
- package/dist/collab/client.js +13 -5
- package/dist/collab/client.js.map +1 -1
- package/dist/collab/index.d.ts +1 -0
- package/dist/collab/index.d.ts.map +1 -1
- package/dist/collab/index.js +1 -0
- package/dist/collab/index.js.map +1 -1
- package/dist/collab/recent-edits.d.ts +3 -1
- package/dist/collab/recent-edits.d.ts.map +1 -1
- package/dist/collab/recent-edits.js +57 -2
- package/dist/collab/recent-edits.js.map +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +1 -1
- package/dist/index.browser.js.map +1 -1
- package/dist/observability/routes.d.ts +5 -5
- package/dist/progress/routes.d.ts +1 -1
- package/dist/resources/handlers.d.ts +3 -3
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +87 -10
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/builder-design-systems.d.ts +15 -0
- package/dist/server/builder-design-systems.d.ts.map +1 -1
- package/dist/server/builder-design-systems.js +9 -4
- package/dist/server/builder-design-systems.js.map +1 -1
- package/package.json +1 -1
|
@@ -144,6 +144,11 @@ export interface UseDesignHotkeysProps {
|
|
|
144
144
|
onZoomToSelection?: DesignHotkeyHandler;
|
|
145
145
|
/** Figma's Cmd+Alt+K — create component from the current selection. */
|
|
146
146
|
onCreateComponent?: DesignHotkeyHandler;
|
|
147
|
+
/**
|
|
148
|
+
* Figma's Cmd+Alt+B — Detach instance: convert the selected component
|
|
149
|
+
* instance into a plain, unlinked element.
|
|
150
|
+
*/
|
|
151
|
+
onDetachInstance?: DesignHotkeyHandler;
|
|
147
152
|
/**
|
|
148
153
|
* Figma's plain digit 1-9 / 0 — set selection opacity (10-90%, 0 = 100%).
|
|
149
154
|
* Only fires when a layer is selected (caller decides via presence of the
|
|
@@ -156,6 +161,12 @@ export interface UseDesignHotkeysProps {
|
|
|
156
161
|
onToggleHidden?: DesignHotkeyHandler;
|
|
157
162
|
/** Figma's Cmd+Shift+L — toggle lock/unlock for the current selection. */
|
|
158
163
|
onToggleLocked?: DesignHotkeyHandler;
|
|
164
|
+
/** Figma's Cmd+U — toggle underline on the current text selection. */
|
|
165
|
+
onToggleUnderline?: DesignHotkeyHandler;
|
|
166
|
+
/** Figma's Cmd+Shift+X — toggle strikethrough on the current text
|
|
167
|
+
* selection. Checked before plain Cmd+X (cut) so the shift-held combo
|
|
168
|
+
* doesn't fall through to cut. */
|
|
169
|
+
onToggleStrikethrough?: DesignHotkeyHandler;
|
|
159
170
|
/** Figma's Shift+H — flip the current selection horizontally. */
|
|
160
171
|
onFlipHorizontal?: DesignHotkeyHandler;
|
|
161
172
|
/** Figma's Shift+V — flip the current selection vertically. */
|
|
@@ -197,6 +208,8 @@ export interface UseDesignHotkeysProps {
|
|
|
197
208
|
onToggleUi?: DesignHotkeyHandler;
|
|
198
209
|
/** Figma's Shift+C — toggle Show/Hide comments (comment pins). */
|
|
199
210
|
onToggleComments?: DesignHotkeyHandler;
|
|
211
|
+
/** Figma's Ctrl+Shift+? — open the keyboard-shortcuts reference panel. */
|
|
212
|
+
onShowKeyboardShortcuts?: DesignHotkeyHandler;
|
|
200
213
|
}
|
|
201
214
|
|
|
202
215
|
const TOOL_SHORTCUTS: Record<
|
|
@@ -269,6 +282,15 @@ export function isDesignHotkeyEditableTarget(target: EventTarget | null) {
|
|
|
269
282
|
return tagName === "input" || tagName === "textarea" || tagName === "select";
|
|
270
283
|
}
|
|
271
284
|
|
|
285
|
+
export function isShowKeyboardShortcutsHotkey(event: KeyboardEvent) {
|
|
286
|
+
return (
|
|
287
|
+
(event.ctrlKey || event.metaKey) &&
|
|
288
|
+
event.shiftKey &&
|
|
289
|
+
!event.altKey &&
|
|
290
|
+
normalizedKey(event) === "?"
|
|
291
|
+
);
|
|
292
|
+
}
|
|
293
|
+
|
|
272
294
|
function isFocusableChromeTarget(target: EventTarget | null) {
|
|
273
295
|
if (!target || typeof Element === "undefined") return false;
|
|
274
296
|
if (!(target instanceof Element)) return false;
|
|
@@ -317,7 +339,8 @@ export function useDesignHotkeys(props: UseDesignHotkeysProps) {
|
|
|
317
339
|
return;
|
|
318
340
|
if (
|
|
319
341
|
current.ignoreEditableTargets !== false &&
|
|
320
|
-
isDesignHotkeyEditableTarget(event.target)
|
|
342
|
+
isDesignHotkeyEditableTarget(event.target) &&
|
|
343
|
+
!isShowKeyboardShortcutsHotkey(event)
|
|
321
344
|
) {
|
|
322
345
|
return;
|
|
323
346
|
}
|
|
@@ -336,7 +359,7 @@ export function useDesignHotkeys(props: UseDesignHotkeysProps) {
|
|
|
336
359
|
}, [props.capture, props.enabled, props.target]);
|
|
337
360
|
}
|
|
338
361
|
|
|
339
|
-
function handleDesignHotkey(
|
|
362
|
+
export function handleDesignHotkey(
|
|
340
363
|
event: KeyboardEvent,
|
|
341
364
|
props: UseDesignHotkeysProps,
|
|
342
365
|
) {
|
|
@@ -398,6 +421,12 @@ function handleDesignHotkey(
|
|
|
398
421
|
return true;
|
|
399
422
|
};
|
|
400
423
|
|
|
424
|
+
// Keep shortcut help global, including while an inspector field or code
|
|
425
|
+
// editor owns focus. No other editing shortcut bypasses the editable guard.
|
|
426
|
+
if (isShowKeyboardShortcutsHotkey(event)) {
|
|
427
|
+
return run(props.onShowKeyboardShortcuts);
|
|
428
|
+
}
|
|
429
|
+
|
|
401
430
|
if (!primary && !event.altKey && event.shiftKey) {
|
|
402
431
|
// H1: shift+key variant (e.g. Shift+L → arrow tool) takes priority over
|
|
403
432
|
// the base binding for the same key while shift is held.
|
|
@@ -425,7 +454,18 @@ function handleDesignHotkey(
|
|
|
425
454
|
}
|
|
426
455
|
|
|
427
456
|
if (event.key === "Escape") return run(props.onEscape);
|
|
428
|
-
if (event.key === "Enter")
|
|
457
|
+
if (event.key === "Enter") {
|
|
458
|
+
// Figma: Enter drills into the selection (selects its first child /
|
|
459
|
+
// begins text editing); Shift+Enter is its sibling — select the
|
|
460
|
+
// selection's PARENT. Checked before the plain onEnter fallback so
|
|
461
|
+
// Shift+Enter doesn't just drill in again; falls back to onEnter when
|
|
462
|
+
// onSelectParent isn't wired so callers that haven't adopted it yet see
|
|
463
|
+
// unchanged behavior.
|
|
464
|
+
if (event.shiftKey && props.onSelectParent) {
|
|
465
|
+
return run(props.onSelectParent);
|
|
466
|
+
}
|
|
467
|
+
return run(props.onEnter);
|
|
468
|
+
}
|
|
429
469
|
if (!primary && !event.altKey && !event.shiftKey && key === "\\") {
|
|
430
470
|
return run(props.onSelectParent);
|
|
431
471
|
}
|
|
@@ -450,9 +490,9 @@ function handleDesignHotkey(
|
|
|
450
490
|
return run(props.onDelete);
|
|
451
491
|
}
|
|
452
492
|
|
|
453
|
-
// Current Figma: Cmd+Backspace ungroups.
|
|
454
|
-
//
|
|
455
|
-
//
|
|
493
|
+
// Current Figma: Cmd+Backspace ungroups. Checked after plain Backspace
|
|
494
|
+
// deletion has been ruled out. Shift+Cmd+G (below, in the Cmd+G family) is
|
|
495
|
+
// a second, equally-supported binding for the same onUngroup handler.
|
|
456
496
|
if (primary && !event.altKey && !event.shiftKey && key === "Backspace") {
|
|
457
497
|
return run(props.onUngroup);
|
|
458
498
|
}
|
|
@@ -476,7 +516,16 @@ function handleDesignHotkey(
|
|
|
476
516
|
if (primary && !event.altKey && !event.shiftKey && key === "a") {
|
|
477
517
|
return run(props.onSelectAll);
|
|
478
518
|
}
|
|
519
|
+
// Figma's Cmd+Shift+X — toggle strikethrough. Must be checked before plain
|
|
520
|
+
// Cmd+X (cut) below, since that check doesn't itself gate on shiftKey.
|
|
521
|
+
if (primary && event.shiftKey && key === "x") {
|
|
522
|
+
return run(props.onToggleStrikethrough);
|
|
523
|
+
}
|
|
479
524
|
if (primary && key === "x") return run(props.onCut);
|
|
525
|
+
// Figma's Cmd+U — toggle underline. No existing binding claims plain "u".
|
|
526
|
+
if (primary && !event.altKey && !event.shiftKey && key === "u") {
|
|
527
|
+
return run(props.onToggleUnderline);
|
|
528
|
+
}
|
|
480
529
|
|
|
481
530
|
// Current Figma: Ctrl+Alt+H / Ctrl+Alt+V — distribute evenly. These use
|
|
482
531
|
// literal Control even on macOS, so resolve them before the primary+V
|
|
@@ -527,11 +576,14 @@ function handleDesignHotkey(
|
|
|
527
576
|
return run(props.onToggleLocked);
|
|
528
577
|
}
|
|
529
578
|
if (primary && key === "g") {
|
|
530
|
-
// Figma: ⌥⌘G is "Frame selection". Current Figma
|
|
531
|
-
// Cmd+Backspace
|
|
532
|
-
//
|
|
579
|
+
// Figma: ⌥⌘G is "Frame selection". Current Figma's primary ungroup chord
|
|
580
|
+
// is Cmd+Backspace (see below), but Shift+Cmd+G is the long-standing
|
|
581
|
+
// historical ungroup binding and the app's own context-menu "Ungroup"
|
|
582
|
+
// item performs the identical action (handleUngroupSelection) — leaving
|
|
583
|
+
// this chord dead while the menu item works is a regression users hit,
|
|
584
|
+
// not an intentional gap. Support both bindings for ungroup.
|
|
533
585
|
if (event.altKey) return run(props.onFrameSelection);
|
|
534
|
-
if (event.shiftKey) return
|
|
586
|
+
if (event.shiftKey) return run(props.onUngroup);
|
|
535
587
|
return run(props.onGroup);
|
|
536
588
|
}
|
|
537
589
|
|
|
@@ -563,6 +615,11 @@ function handleDesignHotkey(
|
|
|
563
615
|
return run(props.onCreateComponent);
|
|
564
616
|
}
|
|
565
617
|
|
|
618
|
+
// Figma's Cmd+Alt+B — Detach instance.
|
|
619
|
+
if (primary && event.altKey && key === "b") {
|
|
620
|
+
return run(props.onDetachInstance);
|
|
621
|
+
}
|
|
622
|
+
|
|
566
623
|
const digit = digitFromEvent(event);
|
|
567
624
|
// Figma navigation tabs use literal Option/Alt, on both platforms. Resolve
|
|
568
625
|
// these before digit opacity so the physical Digit1/Digit2 keys never leak
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
attachLocalizedKeyboardShortcuts,
|
|
3
|
+
keyboardKeyLabels,
|
|
4
|
+
keyboardShortcutLabels,
|
|
5
|
+
} from "../i18n-keyboard-shortcuts";
|
|
6
|
+
|
|
1
7
|
const messages = {
|
|
2
8
|
root: {
|
|
3
9
|
commandActions: "操作",
|
|
@@ -256,6 +262,22 @@ const messages = {
|
|
|
256
262
|
right: "正確的",
|
|
257
263
|
justify: "證明合法",
|
|
258
264
|
},
|
|
265
|
+
textDecorations: {
|
|
266
|
+
underline: "底線",
|
|
267
|
+
strikethrough: "刪除線",
|
|
268
|
+
},
|
|
269
|
+
textCases: {
|
|
270
|
+
none: "無",
|
|
271
|
+
uppercase: "大寫",
|
|
272
|
+
lowercase: "小寫",
|
|
273
|
+
capitalize: "單字首字母大寫",
|
|
274
|
+
},
|
|
275
|
+
typographyDetails: {
|
|
276
|
+
basicsTab: "基本",
|
|
277
|
+
detailsTab: "詳細資料",
|
|
278
|
+
decorationLabel: "文字裝飾",
|
|
279
|
+
caseLabel: "大小寫",
|
|
280
|
+
},
|
|
259
281
|
flexDirections: {
|
|
260
282
|
row: "排",
|
|
261
283
|
column: "柱子",
|
|
@@ -322,6 +344,41 @@ const messages = {
|
|
|
322
344
|
},
|
|
323
345
|
designEditor: {
|
|
324
346
|
askAgent: "詢問代理",
|
|
347
|
+
componentInstances: {
|
|
348
|
+
selectLayer: "選取圖層",
|
|
349
|
+
goToMain: "前往主要元件",
|
|
350
|
+
swap: "交換實例",
|
|
351
|
+
detach: "卸離實例",
|
|
352
|
+
searchComponents: "搜尋元件…",
|
|
353
|
+
loading: "載入中…",
|
|
354
|
+
noOtherComponents: "找不到其他元件",
|
|
355
|
+
goToMainUnavailable: "目前無法前往主要元件。",
|
|
356
|
+
onlyKnownInstance: "這是此元件唯一已知的實例。",
|
|
357
|
+
resolveMainFailed: "無法解析主要元件。",
|
|
358
|
+
detachFailed: "無法卸離此實例。",
|
|
359
|
+
detached: "實例已卸離。",
|
|
360
|
+
swapFailed: "無法交換此實例。",
|
|
361
|
+
swappedFor: "已交換為「{{name}}」。",
|
|
362
|
+
openPanelNudge: "請使用「元件」面板中的「交換實例」選擇器。",
|
|
363
|
+
openPanelFailed: "無法開啟元件面板。",
|
|
364
|
+
},
|
|
365
|
+
makeItRealCard: {
|
|
366
|
+
open: "開啟",
|
|
367
|
+
choose: "選擇",
|
|
368
|
+
connect: "連接",
|
|
369
|
+
generating: "生成中",
|
|
370
|
+
generate: "生成",
|
|
371
|
+
migrationFailed: "遷移失敗,請再試一次。",
|
|
372
|
+
},
|
|
373
|
+
componentProps: {
|
|
374
|
+
alpineTooComplexToEdit:
|
|
375
|
+
"無法安全地就地編輯此屬性——此元件的 Alpine 狀態過於複雜。請改為編輯原始碼。",
|
|
376
|
+
label: "屬性",
|
|
377
|
+
},
|
|
378
|
+
componentSource: {
|
|
379
|
+
editSource: "編輯元件原始碼",
|
|
380
|
+
needsConnectedApp: "跳轉原始碼需要連接應用程式",
|
|
381
|
+
},
|
|
325
382
|
breakpointBar: {
|
|
326
383
|
base: "基礎",
|
|
327
384
|
editBaseWidth: "編輯基礎寬度",
|
|
@@ -427,6 +484,11 @@ const messages = {
|
|
|
427
484
|
figmaPasteDescription:
|
|
428
485
|
"在 Figma 複製畫框或圖層,然後貼到 Design 畫布。Design 會匯入可見的剪貼簿 HTML。",
|
|
429
486
|
figmaPasteTarget: "貼到畫布",
|
|
487
|
+
figmaPasteApiKeyHint: "連結您的 Figma 存取權杖以取得精確的節點匯入。",
|
|
488
|
+
figmaPasteMatchGuidance:
|
|
489
|
+
"無法比對到特定的 Figma 節點。請改貼上畫框連結以進行精確匯入。",
|
|
490
|
+
figmaPasteRestLabel: "透過 Figma API 匯入",
|
|
491
|
+
figmaPasteHtmlLabel: "從剪貼簿預覽匯入",
|
|
430
492
|
figUploadTitle: "上傳 .fig",
|
|
431
493
|
figUploadDescription:
|
|
432
494
|
"只匯出需要的畫框。含有許多嵌入圖片的大型檔案可能超過匯入限制。",
|
|
@@ -648,6 +710,12 @@ const messages = {
|
|
|
648
710
|
openScreenSvg: "匯出 SVG 前請先開啟一個螢幕",
|
|
649
711
|
svgDownloaded: "SVG 已下載",
|
|
650
712
|
svgExportError: "無法匯出 SVG",
|
|
713
|
+
figmaSvgCopied: "已複製為 Figma SVG",
|
|
714
|
+
figmaSvgUnsupported: "此瀏覽器無法將 SVG 圖像複製到剪貼簿",
|
|
715
|
+
figmaSvgBlocked: "請允許存取剪貼簿以複製此 SVG",
|
|
716
|
+
figmaSvgWriteError: "無法將 SVG 複製到剪貼簿",
|
|
717
|
+
figmaSvgRenderError: "無法建立 Figma SVG",
|
|
718
|
+
figmaSvgExportError: "無法匯出 Figma SVG",
|
|
651
719
|
screenDuplicated: "畫面已複製",
|
|
652
720
|
screenDuplicateError: "無法複製畫面",
|
|
653
721
|
copied: "已複製",
|
|
@@ -665,6 +733,8 @@ const messages = {
|
|
|
665
733
|
undoSkippedConcurrentEdit: "已略過復原 — 其他人移動了該項目",
|
|
666
734
|
redoSkippedConcurrentEdit: "已略過重做 — 其他人移動了該項目",
|
|
667
735
|
autoLayoutScreensUnsupported: "新增自動布局不適用於畫面",
|
|
736
|
+
reactSourceAnchorsLoading:
|
|
737
|
+
"React 原始碼錨點仍在載入中。請等本機應用程式完成渲染後再試一次。",
|
|
668
738
|
},
|
|
669
739
|
},
|
|
670
740
|
layersPanel: {
|
|
@@ -701,6 +771,14 @@ const messages = {
|
|
|
701
771
|
frameSelection: "將選取範圍建立畫框",
|
|
702
772
|
flipHorizontal: "水平翻轉",
|
|
703
773
|
flipVertical: "垂直翻轉",
|
|
774
|
+
dragGhostCount: "{{count}} 個圖層",
|
|
775
|
+
},
|
|
776
|
+
designCanvas: {
|
|
777
|
+
localBridge: {
|
|
778
|
+
confirmationRetryExhausted: "多次嘗試後,即時編輯器橋接器仍未確認連線。",
|
|
779
|
+
connectionNotConfirmed:
|
|
780
|
+
"即時編輯器橋接器未確認連線。本機開發伺服器是否仍在執行?",
|
|
781
|
+
},
|
|
704
782
|
},
|
|
705
783
|
multiScreenCanvas: {
|
|
706
784
|
duplicate: "複製",
|
|
@@ -756,6 +834,8 @@ const messages = {
|
|
|
756
834
|
assetsNoImageUrl: "Assets 未回傳圖片 URL。",
|
|
757
835
|
assetAdded: "新增資產",
|
|
758
836
|
failedToUploadFile: "上傳檔案失敗",
|
|
837
|
+
failedToSubmitPrompt: "無法提交提示",
|
|
838
|
+
skipPrompt: "略過提示",
|
|
759
839
|
designSystem: "Design系統",
|
|
760
840
|
noDesignSystem: "沒有設計系統",
|
|
761
841
|
newDesignSystem: "新",
|
|
@@ -784,8 +864,11 @@ const messages = {
|
|
|
784
864
|
offline: "離線",
|
|
785
865
|
saving: "儲存...",
|
|
786
866
|
clearedAllAnnotations: "已清除所有批注",
|
|
867
|
+
annotationsDiscardedOnViewChange:
|
|
868
|
+
"離開此檢視畫面時,{{count}} 則未傳送的批注已被捨棄。",
|
|
787
869
|
undo: "復原",
|
|
788
870
|
send: "傳送",
|
|
871
|
+
sendingDrawing: "正在傳送…",
|
|
789
872
|
commentSent: "評論已傳送",
|
|
790
873
|
comment: "評論",
|
|
791
874
|
annotationQueue: "註記佇列",
|
|
@@ -799,6 +882,9 @@ const messages = {
|
|
|
799
882
|
nearText: "靠近「{{text}}」",
|
|
800
883
|
submitShortcut: "{{mod}}+Enter 送出",
|
|
801
884
|
queue: "排隊",
|
|
885
|
+
queuedCommentsDiscarded:
|
|
886
|
+
"{{count}} 個未傳送的評論草稿已在你離開此檢視時捨棄。",
|
|
887
|
+
staleAnchorDetail: "在畫布上已找不到原始元素。",
|
|
802
888
|
pinStatus: {
|
|
803
889
|
deterministic: {
|
|
804
890
|
label: "確定性",
|
|
@@ -1085,4 +1171,8 @@ const messages = {
|
|
|
1085
1171
|
},
|
|
1086
1172
|
};
|
|
1087
1173
|
|
|
1088
|
-
export default
|
|
1174
|
+
export default attachLocalizedKeyboardShortcuts(
|
|
1175
|
+
messages,
|
|
1176
|
+
keyboardShortcutLabels["zh-TW"],
|
|
1177
|
+
keyboardKeyLabels["zh-TW"],
|
|
1178
|
+
);
|