@agent-native/core 0.90.1 → 0.90.2

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.
Files changed (295) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/core/CHANGELOG.md +14 -0
  3. package/corpus/core/package.json +1 -1
  4. package/corpus/core/src/client/AgentPanel.tsx +1 -1
  5. package/corpus/core/src/client/rich-markdown-editor/useCollabReconcile.ts +11 -6
  6. package/corpus/core/src/client/use-action.ts +39 -2
  7. package/corpus/core/src/client/use-db-sync.ts +44 -18
  8. package/corpus/core/src/db/create-get-db.ts +32 -2
  9. package/corpus/core/src/server/framework-request-handler.ts +52 -4
  10. package/corpus/templates/assets/.agents/skills/asset-generation/SKILL.md +5 -0
  11. package/corpus/templates/assets/.agents/skills/logo-composite/SKILL.md +34 -6
  12. package/corpus/templates/assets/AGENTS.md +23 -4
  13. package/corpus/templates/assets/actions/_generation-preset-settings.ts +48 -0
  14. package/corpus/templates/assets/actions/_helpers.ts +8 -1
  15. package/corpus/templates/assets/actions/_preset-skeleton-validation.ts +64 -0
  16. package/corpus/templates/assets/actions/create-generation-preset.ts +11 -3
  17. package/corpus/templates/assets/actions/generate-image-batch.ts +7 -2
  18. package/corpus/templates/assets/actions/generate-image.ts +342 -25
  19. package/corpus/templates/assets/actions/get-library.ts +4 -3
  20. package/corpus/templates/assets/actions/navigate.ts +2 -1
  21. package/corpus/templates/assets/actions/refresh-generation-run.ts +5 -1
  22. package/corpus/templates/assets/actions/update-asset.ts +1 -0
  23. package/corpus/templates/assets/actions/update-generation-preset.ts +8 -1
  24. package/corpus/templates/assets/actions/view-screen.ts +8 -1
  25. package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +9 -1
  26. package/corpus/templates/assets/app/hooks/use-image-model-menu.ts +1 -0
  27. package/corpus/templates/assets/app/hooks/use-navigation-state.ts +11 -0
  28. package/corpus/templates/assets/app/i18n/zh-TW.ts +64 -0
  29. package/corpus/templates/assets/app/i18n-data.ts +650 -0
  30. package/corpus/templates/assets/app/routes/asset.$id.tsx +2 -1
  31. package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +44 -33
  32. package/corpus/templates/assets/app/routes/brand-kits.$id_.presets.$presetId.tsx +1474 -0
  33. package/corpus/templates/assets/app/routes/library.tsx +43 -1
  34. package/corpus/templates/assets/server/lib/generation.ts +366 -44
  35. package/corpus/templates/assets/server/lib/image-processing.ts +252 -0
  36. package/corpus/templates/assets/server/lib/preset-skeleton.ts +137 -0
  37. package/corpus/templates/assets/shared/api.ts +47 -0
  38. package/corpus/templates/clips/app/components/library/library-layout.tsx +7 -2
  39. package/corpus/templates/clips/app/components/library/sort-menu.tsx +1 -1
  40. package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +114 -33
  41. package/corpus/templates/clips/app/routes/_app.library._index.tsx +27 -1
  42. package/corpus/templates/clips/app/routes/record.tsx +157 -68
  43. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/abort.post.ts +5 -5
  44. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +20 -3
  45. package/corpus/templates/clips/shared/finalize-recovery.ts +23 -3
  46. package/corpus/templates/content/AGENTS.md +52 -52
  47. package/corpus/templates/content/actions/_builder-cms-read-client.ts +188 -8
  48. package/corpus/templates/content/actions/_builder-docs-client.ts +41 -3
  49. package/corpus/templates/content/actions/_database-source-utils.ts +998 -160
  50. package/corpus/templates/content/actions/_database-utils.ts +44 -4
  51. package/corpus/templates/content/actions/_notion-action-utils.ts +6 -2
  52. package/corpus/templates/content/actions/add-content-database-source-field-property.ts +23 -1
  53. package/corpus/templates/content/actions/attach-content-database-source.ts +85 -12
  54. package/corpus/templates/content/actions/change-content-database-source-role.ts +9 -1
  55. package/corpus/templates/content/actions/delete-content-database.ts +1 -0
  56. package/corpus/templates/content/actions/get-document.ts +11 -2
  57. package/corpus/templates/content/actions/list-content-databases.ts +57 -9
  58. package/corpus/templates/content/actions/prepare-builder-source-review.ts +23 -6
  59. package/corpus/templates/content/actions/refresh-content-database-source.ts +26 -3
  60. package/corpus/templates/content/actions/restore-content-database.ts +1 -0
  61. package/corpus/templates/content/actions/update-document.ts +43 -0
  62. package/corpus/templates/content/app/components/editor/BuilderBodySyncingNotice.tsx +21 -0
  63. package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +0 -1
  64. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +70 -28
  65. package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +69 -17
  66. package/corpus/templates/content/app/components/editor/VisualEditor.tsx +4 -4
  67. package/corpus/templates/content/app/components/editor/body-hydration.ts +112 -0
  68. package/corpus/templates/content/app/components/editor/builder-body-hydration-pump.ts +52 -0
  69. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +9076 -2876
  70. package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +41 -1
  71. package/corpus/templates/content/app/components/editor/extensions/ImageBlock.tsx +36 -11
  72. package/corpus/templates/content/app/components/editor/previewDocumentSaveController.ts +21 -1
  73. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +11 -1
  74. package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +11 -8
  75. package/corpus/templates/content/app/global.css +41 -0
  76. package/corpus/templates/content/app/hooks/use-content-database.ts +346 -42
  77. package/corpus/templates/content/app/hooks/use-db-sync.ts +9 -0
  78. package/corpus/templates/content/app/hooks/use-documents.ts +47 -0
  79. package/corpus/templates/content/app/hooks/use-notion.ts +12 -10
  80. package/corpus/templates/content/app/i18n/zh-TW.ts +35 -0
  81. package/corpus/templates/content/app/i18n-data.ts +355 -0
  82. package/corpus/templates/content/app/root.tsx +22 -0
  83. package/corpus/templates/content/changelog/2026-07-01-builder-database-sources-keep-loading-rows-in-the-background.md +6 -0
  84. package/corpus/templates/content/changelog/2026-07-01-builder-source-attach-starts-with-usable-rows.md +6 -0
  85. package/corpus/templates/content/changelog/2026-07-01-builder-source-attachment-now-stays-connected-after-large.md +6 -0
  86. package/corpus/templates/content/changelog/2026-07-01-builder-source-refreshes-now-show-progress-for-large-docs-blog.md +6 -0
  87. package/corpus/templates/content/changelog/2026-07-01-database-pages-now-delete-to-trash-without-route-errors.md +6 -0
  88. package/corpus/templates/content/changelog/2026-07-02-builder-source-refreshes-recover-from-stalled-background-row.md +6 -0
  89. package/corpus/templates/content/changelog/2026-07-02-builder-sourced-rows-open-with-sync-protection.md +6 -0
  90. package/corpus/templates/content/changelog/2026-07-02-database-rows-and-pages-open-faster-from-recently-loaded-dat.md +6 -0
  91. package/corpus/templates/content/changelog/2026-07-02-preview-panels-close-reliably-narrow-sidebar-row-actions-sta.md +6 -0
  92. package/corpus/templates/content/changelog/2026-07-06-builder-sync-progress-no-longer-shows-continue.md +6 -0
  93. package/corpus/templates/content/shared/api.ts +13 -0
  94. package/corpus/templates/content/shared/builder-mdx.ts +16 -3
  95. package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +23 -13
  96. package/corpus/templates/design/.agents/skills/responsive-breakpoints/SKILL.md +98 -0
  97. package/corpus/templates/design/.agents/skills/shader-fills/SKILL.md +162 -0
  98. package/corpus/templates/design/AGENTS.md +9 -2
  99. package/corpus/templates/design/actions/add-breakpoint.ts +6 -3
  100. package/corpus/templates/design/actions/apply-a11y-fix.ts +57 -37
  101. package/corpus/templates/design/actions/apply-component-prop-edit.ts +41 -20
  102. package/corpus/templates/design/actions/apply-motion-edit.ts +251 -38
  103. package/corpus/templates/design/actions/apply-shader-fill.ts +90 -66
  104. package/corpus/templates/design/actions/apply-visual-edit.ts +282 -55
  105. package/corpus/templates/design/actions/create-component.ts +29 -60
  106. package/corpus/templates/design/actions/create-file.ts +9 -2
  107. package/corpus/templates/design/actions/duplicate-design.ts +31 -2
  108. package/corpus/templates/design/actions/edit-design.ts +36 -38
  109. package/corpus/templates/design/actions/generate-design-title.ts +87 -0
  110. package/corpus/templates/design/actions/generate-design.ts +53 -18
  111. package/corpus/templates/design/actions/generate-screens.ts +108 -4
  112. package/corpus/templates/design/actions/get-motion-timeline.ts +35 -7
  113. package/corpus/templates/design/actions/insert-asset.ts +34 -29
  114. package/corpus/templates/design/actions/insert-design-native-asset.ts +129 -32
  115. package/corpus/templates/design/actions/insert-figma-library-asset.ts +35 -30
  116. package/corpus/templates/design/actions/present-design-variants.ts +7 -2
  117. package/corpus/templates/design/actions/remove-motion-timeline.ts +31 -36
  118. package/corpus/templates/design/actions/update-file.ts +190 -75
  119. package/corpus/templates/design/app/components/design/BreakpointBar.tsx +403 -0
  120. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +469 -222
  121. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +708 -53
  122. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +83 -3
  123. package/corpus/templates/design/app/components/design/EditPanel.tsx +1091 -6948
  124. package/corpus/templates/design/app/components/design/LayersPanel.tsx +419 -85
  125. package/corpus/templates/design/app/components/design/MotionDock.tsx +1124 -103
  126. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +2610 -1398
  127. package/corpus/templates/design/app/components/design/ReadOnlyDesignBanner.tsx +22 -0
  128. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +2182 -235
  129. package/corpus/templates/design/app/components/design/bridge/motion-preview.bridge.ts +187 -11
  130. package/corpus/templates/design/app/components/design/bridge/shader-fill-preview.bridge.ts +376 -1
  131. package/corpus/templates/design/app/components/design/bridge/shader-runtime.bridge.ts +746 -0
  132. package/corpus/templates/design/app/components/design/canvas-primitive-style.ts +17 -0
  133. package/corpus/templates/design/app/components/design/code-workbench/SideBar.tsx +1 -1
  134. package/corpus/templates/design/app/components/design/code-workbench/explorer/FileTree.tsx +1 -3
  135. package/corpus/templates/design/app/components/design/code-workbench/quickinput/QuickInput.tsx +1 -1
  136. package/corpus/templates/design/app/components/design/edit-panel/appearance-properties.tsx +518 -0
  137. package/corpus/templates/design/app/components/design/edit-panel/code-inspect-helpers.tsx +562 -0
  138. package/corpus/templates/design/app/components/design/edit-panel/component-section.tsx +763 -0
  139. package/corpus/templates/design/app/components/design/edit-panel/document-colors.ts +94 -0
  140. package/corpus/templates/design/app/components/design/edit-panel/effects-properties.tsx +780 -0
  141. package/corpus/templates/design/app/components/design/edit-panel/element-classification.ts +446 -0
  142. package/corpus/templates/design/app/components/design/edit-panel/element-identity.ts +79 -0
  143. package/corpus/templates/design/app/components/design/edit-panel/field-primitives.tsx +315 -0
  144. package/corpus/templates/design/app/components/design/edit-panel/fill-gradient-helpers.ts +344 -0
  145. package/corpus/templates/design/app/components/design/edit-panel/fill-properties.tsx +594 -0
  146. package/corpus/templates/design/app/components/design/edit-panel/frame-presets-panel.tsx +119 -0
  147. package/corpus/templates/design/app/components/design/edit-panel/inspector-controls.tsx +248 -0
  148. package/corpus/templates/design/app/components/design/edit-panel/interaction-state-helpers.ts +45 -0
  149. package/corpus/templates/design/app/components/design/edit-panel/layout-properties.tsx +693 -0
  150. package/corpus/templates/design/app/components/design/edit-panel/panel-primitives.tsx +724 -0
  151. package/corpus/templates/design/app/components/design/edit-panel/position-helpers.ts +207 -0
  152. package/corpus/templates/design/app/components/design/edit-panel/position-layout-properties.tsx +628 -0
  153. package/corpus/templates/design/app/components/design/edit-panel/selection-helpers.ts +91 -0
  154. package/corpus/templates/design/app/components/design/edit-panel/stroke-properties.tsx +649 -0
  155. package/corpus/templates/design/app/components/design/edit-panel/style-change-types.ts +118 -0
  156. package/corpus/templates/design/app/components/design/edit-panel/style-options.ts +88 -0
  157. package/corpus/templates/design/app/components/design/edit-panel/transform-helpers.ts +100 -0
  158. package/corpus/templates/design/app/components/design/edit-panel/typography-helpers.ts +117 -0
  159. package/corpus/templates/design/app/components/design/edit-panel/typography-properties.tsx +501 -0
  160. package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +91 -40
  161. package/corpus/templates/design/app/components/design/inspector/BreakpointOverrideIndicator.tsx +82 -0
  162. package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +189 -87
  163. package/corpus/templates/design/app/components/design/inspector/GlslShaderPanel.tsx +1097 -0
  164. package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +44 -0
  165. package/corpus/templates/design/app/components/design/inspector/InteractionStatePanel.tsx +258 -0
  166. package/corpus/templates/design/app/components/design/inspector/MotionKeyframeDiamond.tsx +144 -0
  167. package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +99 -9
  168. package/corpus/templates/design/app/components/design/inspector/frame-size-presets.ts +116 -0
  169. package/corpus/templates/design/app/components/design/inspector/index.ts +26 -0
  170. package/corpus/templates/design/app/components/design/inspector/scrub-input-utils.ts +29 -0
  171. package/corpus/templates/design/app/components/design/multi-screen/alt-hover-measurement.ts +171 -0
  172. package/corpus/templates/design/app/components/design/multi-screen/board-surface-html.ts +220 -0
  173. package/corpus/templates/design/app/components/design/multi-screen/chrome-transitions.ts +35 -0
  174. package/corpus/templates/design/app/components/design/multi-screen/cross-screen-drop.ts +134 -0
  175. package/corpus/templates/design/app/components/design/multi-screen/culling.ts +185 -0
  176. package/corpus/templates/design/app/components/design/multi-screen/gradient-overlay-geometry.ts +120 -0
  177. package/corpus/templates/design/app/components/design/multi-screen/types.ts +892 -0
  178. package/corpus/templates/design/app/components/design/multi-screen/vector-edit-geometry.ts +21 -0
  179. package/corpus/templates/design/app/components/design/types.ts +15 -0
  180. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +109 -5
  181. package/corpus/templates/design/app/global.css +8 -8
  182. package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +259 -2
  183. package/corpus/templates/design/app/i18n/zh-TW.ts +163 -9
  184. package/corpus/templates/design/app/i18n-breakpoints.ts +205 -0
  185. package/corpus/templates/design/app/i18n-data.ts +1664 -152
  186. package/corpus/templates/design/app/i18n-motion.ts +563 -0
  187. package/corpus/templates/design/app/lib/design-import.ts +73 -0
  188. package/corpus/templates/design/app/pages/Index.tsx +41 -22
  189. package/corpus/templates/design/changelog/2026-06-29-design-inspector-controls-now-match-figmas-softer-dark-chrome.md +1 -1
  190. package/corpus/templates/design/changelog/2026-06-30-design-now-has-a-figma-style-left-rail-for-file-agent-assets.md +1 -1
  191. package/corpus/templates/design/changelog/2026-06-30-design-tools-now-use-a-quieter-figma-style-list-layout.md +1 -1
  192. package/corpus/templates/design/changelog/2026-06-30-multi-select-outlines-now-stay-consistent-across-all-screens.md +1 -1
  193. package/corpus/templates/design/changelog/2026-07-03-canvas-interactions-now-match-figma-rotation-aware-resizing-.md +1 -1
  194. package/corpus/templates/design/changelog/2026-07-03-layers-panel-matches-figma-top-layer-on-top-drag-with-auto-s.md +1 -1
  195. package/corpus/templates/design/changelog/2026-07-05-designs-get-ai-generated-names-from-your-prompt.md +6 -0
  196. package/corpus/templates/design/changelog/2026-07-05-local-code-screens-keep-their-connection-when-duplicated-and.md +6 -0
  197. package/corpus/templates/design/changelog/2026-07-05-press-a-to-draw-screens-on-the-canvas-inside-a-screen-it-dr.md +6 -0
  198. package/corpus/templates/design/changelog/2026-07-06-3d-rotation-and-perspective-controls-on-every-element.md +6 -0
  199. package/corpus/templates/design/changelog/2026-07-06-ai-generated-and-duplicated-screens-now-get-their-editor-sel.md +6 -0
  200. package/corpus/templates/design/changelog/2026-07-06-applying-shaders-and-fills-in-quick-succession-can-no-longer.md +6 -0
  201. package/corpus/templates/design/changelog/2026-07-06-breakpoint-frames-in-the-overview-now-support-click-to-selec.md +6 -0
  202. package/corpus/templates/design/changelog/2026-07-06-breakpoint-segments-in-the-inspector-now-show-a-device-icon-.md +6 -0
  203. package/corpus/templates/design/changelog/2026-07-06-breakpoint-targeting-now-lives-in-one-compact-control-in-the.md +6 -0
  204. package/corpus/templates/design/changelog/2026-07-06-canvas-edits-can-no-longer-be-overwritten-by-stale-collabora.md +6 -0
  205. package/corpus/templates/design/changelog/2026-07-06-canvas-edits-inside-screens-save-reliably-again.md +6 -0
  206. package/corpus/templates/design/changelog/2026-07-06-cleaner-inspector-removed-the-ask-ai-box-from-the-design-tab.md +6 -0
  207. package/corpus/templates/design/changelog/2026-07-06-clicking-empty-canvas-space-now-deselects-an-element-inside-.md +6 -0
  208. package/corpus/templates/design/changelog/2026-07-06-dragging-an-element-onto-a-rectangle-now-nests-it-inside-wit.md +6 -0
  209. package/corpus/templates/design/changelog/2026-07-06-dragging-screens-and-objects-on-the-canvas-is-now-much-smoot.md +6 -0
  210. package/corpus/templates/design/changelog/2026-07-06-drawing-a-shape-or-text-on-the-canvas-no-longer-flashes-away.md +6 -0
  211. package/corpus/templates/design/changelog/2026-07-06-dropping-an-element-between-two-others-inside-a-screen-now-s.md +6 -0
  212. package/corpus/templates/design/changelog/2026-07-06-duplicating-a-screen-now-places-the-copy-exactly-where-you-d.md +6 -0
  213. package/corpus/templates/design/changelog/2026-07-06-edit-gradients-directly-on-elements-inside-screens-scale-str.md +6 -0
  214. package/corpus/templates/design/changelog/2026-07-06-edits-from-collaborators-and-the-agent-now-update-the-canvas.md +6 -0
  215. package/corpus/templates/design/changelog/2026-07-06-fixed-a-bug-where-most-style-position-and-text-edits-briefly.md +6 -0
  216. package/corpus/templates/design/changelog/2026-07-06-fixed-a-confusing-raw-error-message-when-a-file-upload-fails.md +6 -0
  217. package/corpus/templates/design/changelog/2026-07-06-fixed-a-rare-case-where-an-edit-could-be-silently-overwritte.md +6 -0
  218. package/corpus/templates/design/changelog/2026-07-06-fixed-inserted-assets-sometimes-disappearing-reappearing-or-.md +6 -0
  219. package/corpus/templates/design/changelog/2026-07-06-fixed-inspector-value-scrubbing-producing-erratic-numbers-an.md +6 -0
  220. package/corpus/templates/design/changelog/2026-07-06-fixed-padding-gap-and-min-max-size-scrubbing-not-updating-th.md +6 -0
  221. package/corpus/templates/design/changelog/2026-07-06-fixed-text-stroke-color-turning-black-and-glyphs-disappearin.md +6 -0
  222. package/corpus/templates/design/changelog/2026-07-06-fixed-the-collapsed-effects-and-stroke-inspector-sections-sh.md +6 -0
  223. package/corpus/templates/design/changelog/2026-07-06-fixed-the-new-design-dialog-closing-unexpectedly-when-using-.md +6 -0
  224. package/corpus/templates/design/changelog/2026-07-06-fixed-the-typography-section-missing-when-selecting-text-nes.md +6 -0
  225. package/corpus/templates/design/changelog/2026-07-06-full-view-no-longer-flashes-back-to-the-overview-on-entry-no.md +6 -0
  226. package/corpus/templates/design/changelog/2026-07-06-keyframe-animation-timeline-per-property-keyframes-easing-cu.md +6 -0
  227. package/corpus/templates/design/changelog/2026-07-06-moving-restyling-and-scrubbing-values-on-elements-in-ai-gene.md +6 -0
  228. package/corpus/templates/design/changelog/2026-07-06-padding-and-corner-radius-value-scrubbing-now-snaps-to-whole.md +6 -0
  229. package/corpus/templates/design/changelog/2026-07-06-padding-handles-now-only-resize-on-the-handle-line-itself-sh.md +6 -0
  230. package/corpus/templates/design/changelog/2026-07-06-preview-and-edit-hover-focus-and-pressed-states-with-real-cs.md +6 -0
  231. package/corpus/templates/design/changelog/2026-07-06-promoting-an-element-to-a-component-now-works-correctly-for-.md +6 -0
  232. package/corpus/templates/design/changelog/2026-07-06-reduced-url-history-churn-and-selection-overlay-flicker-whil.md +6 -0
  233. package/corpus/templates/design/changelog/2026-07-06-removed-the-decorative-dot-before-screen-names-in-the-overvi.md +6 -0
  234. package/corpus/templates/design/changelog/2026-07-06-responsive-breakpoints-edit-at-any-width-with-cascading-over.md +6 -0
  235. package/corpus/templates/design/changelog/2026-07-06-screen-labels-no-longer-turn-blue-when-you-hover-inside-the-.md +6 -0
  236. package/corpus/templates/design/changelog/2026-07-06-scrolling-a-screen-with-an-element-selected-stays-smooth-on-.md +6 -0
  237. package/corpus/templates/design/changelog/2026-07-06-selecting-multiple-elements-and-dragging-now-moves-the-whole.md +6 -0
  238. package/corpus/templates/design/changelog/2026-07-06-selection-borders-handles-and-value-readouts-now-stay-the-sa.md +6 -0
  239. package/corpus/templates/design/changelog/2026-07-06-selection-handles-and-editing-chrome-now-stay-a-constant-siz.md +6 -0
  240. package/corpus/templates/design/changelog/2026-07-06-shader-fills-and-effects-ai-authored-or-preset-glsl-shaders-.md +6 -0
  241. package/corpus/templates/design/changelog/2026-07-06-text-drawn-on-the-canvas-now-defaults-to-white-and-inter-in-.md +6 -0
  242. package/corpus/templates/design/changelog/2026-07-06-text-dropped-into-a-shape-now-stays-readable-instead-of-disa.md +6 -0
  243. package/corpus/templates/design/changelog/2026-07-06-the-add-tweak-controls-prompt-no-longer-jumps-to-the-corner-.md +6 -0
  244. package/corpus/templates/design/changelog/2026-07-06-the-padding-value-readout-now-stays-visible-while-you-hover-.md +6 -0
  245. package/corpus/templates/design/changelog/2026-07-06-the-selected-element-attachment-now-clears-from-the-chat-com.md +6 -0
  246. package/corpus/templates/design/changelog/2026-07-06-the-zoom-menu-is-more-compact-with-tight-rows-and-right-alig.md +6 -0
  247. package/corpus/templates/design/changelog/2026-07-06-undo-and-redo-no-longer-flash-the-screen-changes-now-apply-i.md +6 -0
  248. package/corpus/templates/design/changelog/2026-07-06-zoom-presets-like-zoom-to-50-now-stay-on-the-focused-screen-.md +6 -0
  249. package/corpus/templates/design/server/lib/import-design-files.ts +11 -2
  250. package/corpus/templates/design/server/source-workspace.ts +139 -59
  251. package/corpus/templates/design/shared/board-file.ts +11 -2
  252. package/corpus/templates/design/shared/breakpoint-media.ts +543 -0
  253. package/corpus/templates/design/shared/canvas-math.ts +354 -35
  254. package/corpus/templates/design/shared/code-layer.ts +277 -8
  255. package/corpus/templates/design/shared/design-state.ts +11 -4
  256. package/corpus/templates/design/shared/interaction-states.ts +548 -0
  257. package/corpus/templates/design/shared/motion-compiler.ts +186 -23
  258. package/corpus/templates/design/shared/motion-easing.ts +294 -0
  259. package/corpus/templates/design/shared/motion-timeline.ts +400 -34
  260. package/corpus/templates/design/shared/prompt-title.ts +95 -0
  261. package/corpus/templates/design/shared/responsive-classes.ts +448 -10
  262. package/corpus/templates/design/shared/screen-annotation.ts +46 -0
  263. package/corpus/templates/design/shared/shader-fills.ts +1009 -0
  264. package/corpus/templates/design/shared/shader-presets.ts +852 -4
  265. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +15 -2
  266. package/corpus/templates/slides/app/components/editor/ImportButton.tsx +10 -1
  267. package/corpus/templates/slides/app/lib/upload-response.ts +71 -0
  268. package/dist/client/AgentPanel.js +1 -1
  269. package/dist/client/AgentPanel.js.map +1 -1
  270. package/dist/client/rich-markdown-editor/useCollabReconcile.d.ts.map +1 -1
  271. package/dist/client/rich-markdown-editor/useCollabReconcile.js +11 -6
  272. package/dist/client/rich-markdown-editor/useCollabReconcile.js.map +1 -1
  273. package/dist/client/use-action.d.ts +3 -0
  274. package/dist/client/use-action.d.ts.map +1 -1
  275. package/dist/client/use-action.js +34 -3
  276. package/dist/client/use-action.js.map +1 -1
  277. package/dist/client/use-db-sync.d.ts +4 -0
  278. package/dist/client/use-db-sync.d.ts.map +1 -1
  279. package/dist/client/use-db-sync.js +37 -18
  280. package/dist/client/use-db-sync.js.map +1 -1
  281. package/dist/collab/routes.d.ts +1 -1
  282. package/dist/collab/struct-routes.d.ts +1 -1
  283. package/dist/db/create-get-db.d.ts +25 -0
  284. package/dist/db/create-get-db.d.ts.map +1 -1
  285. package/dist/db/create-get-db.js +25 -2
  286. package/dist/db/create-get-db.js.map +1 -1
  287. package/dist/observability/routes.d.ts +3 -3
  288. package/dist/secrets/routes.d.ts +9 -9
  289. package/dist/server/framework-request-handler.d.ts.map +1 -1
  290. package/dist/server/framework-request-handler.js +37 -1
  291. package/dist/server/framework-request-handler.js.map +1 -1
  292. package/package.json +1 -1
  293. package/corpus/templates/design/app/components/design/inspector/InspectorAiActions.tsx +0 -153
  294. package/corpus/templates/design/app/hooks/useAgentEditRequest.ts +0 -133
  295. package/corpus/templates/design/app/pages/DesignEditor.tsx +0 -22924
@@ -1,5 +1,7 @@
1
1
  import type { LocaleCode } from "@agent-native/core/client";
2
2
 
3
+ import { breakpointBarOverrides } from "./i18n-breakpoints";
4
+ import { motionDockOverrides } from "./i18n-motion";
3
5
  import zhTW from "./i18n/zh-TW";
4
6
 
5
7
  const enUS = {
@@ -113,9 +115,13 @@ const enUS = {
113
115
  removeLayer: "Remove layer",
114
116
  showLayer: "Show layer",
115
117
  hideLayer: "Hide layer",
118
+ reorderLayer: "Reorder layer",
119
+ stylesComingSoon: "Styles — Coming soon",
116
120
  linkSides: "Link sides",
117
121
  unlinkSides: "Unlink sides",
118
122
  allSides: "All",
123
+ lockAspectRatio: "Lock aspect ratio",
124
+ unlockAspectRatio: "Unlock aspect ratio",
119
125
  cornerRadius: "Corner radius",
120
126
  independentCorners: "Independent corners",
121
127
  topLeft: "TL",
@@ -127,12 +133,78 @@ const enUS = {
127
133
  outline: "Outline",
128
134
  inside: "Inside",
129
135
  outside: "Outside",
136
+ center: "Center",
130
137
  dropShadow: "Drop shadow",
131
138
  addDropShadow: "Add drop shadow",
132
139
  innerShadow: "Inner shadow",
133
140
  layerBlur: "Layer blur",
134
141
  blur: "Blur",
135
142
  spread: "Spread",
143
+ rotation3d: "3D rotation",
144
+ rotationX: "Rotate X",
145
+ rotationY: "Rotate Y",
146
+ perspective: "Perspective",
147
+ perspectiveHint: "Perspective (empty/0 = none)",
148
+ customTransform: "Custom transform — can't be edited as X/Y/Z rotation",
149
+ shaderEffectType: "Shader",
150
+ },
151
+ shaders: {
152
+ fillsTitle: "Shader fills",
153
+ effectsTitle: "Shader effects",
154
+ createdByYou: "Created by you",
155
+ presets: "Presets",
156
+ createNew: "Create new",
157
+ ai: "AI",
158
+ savedInThisDesign: "Saved in this design",
159
+ noMatches: "No shaders match your search",
160
+ backToBrowser: "Back to shader browser",
161
+ closePanel: "Close shader panel",
162
+ editCode: "Edit GLSL code",
163
+ removeShader: "Remove shader",
164
+ removeShaderEffect: "Remove shader effect",
165
+ noUniforms: "This shader has no adjustable uniforms",
166
+ codeHint:
167
+ "The GLSL source is saved in this screen's HTML — open the Code panel to edit it.",
168
+ selectElementFirst: "Select a screen element first",
169
+ selectCanvasElementFirst: "Select an element on the canvas first",
170
+ saveFailed: "Could not save the shader",
171
+ categories: {
172
+ gradientFlow: "Gradient flow",
173
+ waves: "Waves",
174
+ noise: "Noise",
175
+ pattern: "Patterns",
176
+ texture: "Texture",
177
+ retro: "Retro",
178
+ },
179
+ },
180
+ interactionStates: {
181
+ default: "Default",
182
+ hover: "Hover",
183
+ focus: "Focus",
184
+ focusVisible: "Focus visible",
185
+ active: "Pressed",
186
+ disabled: "Disabled",
187
+ selectorLabel: "Interaction state",
188
+ selectorTooltip: "Preview and edit hover, focus, and pressed states",
189
+ editingState: "Editing {{state}} state",
190
+ editingStateTooltip:
191
+ "Editing the {{state}} state — styles here apply only when this element is {{state}}",
192
+ hasOverrideIndicator: "This property is overridden in this state",
193
+ reset: "Reset",
194
+ resetOverride: "Reset override",
195
+ resetOverrideTooltip:
196
+ "Clear this state's override and use the default value",
197
+ },
198
+ motionKeyframe: {
199
+ addTooltip: "Add keyframe",
200
+ removeTooltip: "Remove keyframe",
201
+ },
202
+ breakpointOverride: {
203
+ overriddenTooltip: "Overridden at this breakpoint",
204
+ overriddenAtTooltip: "Overridden at {{width}}px",
205
+ reset: "Reset override",
206
+ resetShort: "Reset",
207
+ resetTooltip: "Clear this breakpoint's override and use the base value",
136
208
  },
137
209
  selection: {
138
210
  pageContext: "Page defaults",
@@ -243,6 +315,18 @@ const enUS = {
243
315
  dotted: "Dotted",
244
316
  double: "Double",
245
317
  },
318
+ framePresets: {
319
+ title: "Frame",
320
+ categories: {
321
+ phone: "Phone",
322
+ tablet: "Tablet",
323
+ desktop: "Desktop",
324
+ presentation: "Presentation",
325
+ watch: "Watch",
326
+ paper: "Paper",
327
+ socialMedia: "Social media",
328
+ },
329
+ },
246
330
  },
247
331
  designEditor: {
248
332
  askAgent: "Ask agent",
@@ -255,9 +339,75 @@ const enUS = {
255
339
  tokens: "Tokens",
256
340
  label: "Design workspace",
257
341
  },
342
+ breakpointBar: {
343
+ base: "Base",
344
+ editBaseWidth: "Edit base width",
345
+ addBreakpoint: "Add breakpoint",
346
+ remove: "Remove breakpoint",
347
+ options: "Breakpoint options",
348
+ changeWidth: "Change width",
349
+ customWidth: "Custom width",
350
+ add: "Add",
351
+ showAllBreakpoints: "Show all breakpoints",
352
+ desktop: "Desktop",
353
+ tablet: "Tablet",
354
+ phone: "Phone",
355
+ },
356
+ motion: {
357
+ dockLabel: "Motion dock",
358
+ collapseDock: "Collapse motion dock",
359
+ play: "Play",
360
+ pause: "Pause",
361
+ resetPlayhead: "Reset playhead",
362
+ reset: "Reset",
363
+ addKeyframeAtPlayhead: "Add keyframe at playhead",
364
+ addKeyframeAtPlayheadForProperty:
365
+ "Add keyframe at playhead ({{property}})",
366
+ selectPropertyRowFirst: "Select a property row first",
367
+ currentTimeMs: "Current time in ms",
368
+ duration: "Duration",
369
+ durationMs: "Duration in ms",
370
+ playbackMode: "Playback mode: {{mode}}",
371
+ playback: "Playback: {{mode}}",
372
+ loop: "Loop",
373
+ once: "Once",
374
+ pingPong: "Ping-pong",
375
+ toggleAutoKeyframe: "Toggle auto-keyframe",
376
+ autoKeyframe: "Auto-keyframe",
377
+ savingMotion: "Saving motion",
378
+ emptyStateAnimate: "Animate",
379
+ emptyStatePickProperty: ". Pick a property to add the first track.",
380
+ emptyStateNoSelection:
381
+ "Select an element on the canvas, then add a track to animate it.",
382
+ addMotion: "Add motion",
383
+ selectElementFirst: "Select an element on the canvas first",
384
+ animateLayer: 'Animate "{{label}}"',
385
+ more: "More",
386
+ addKeyframe: "Add keyframe",
387
+ trackExists:
388
+ 'A "{{property}}" track already exists for {{label}}. Edit its keyframes in the timeline instead.',
389
+ layerAnimationSpan: "{{label}} animation span",
390
+ keyframeAt: "Keyframe at {{ms}}ms",
391
+ deleteKeyframe: "Delete keyframe",
392
+ segmentEasing: "Segment easing: {{ease}}",
393
+ curveTab: "Curve",
394
+ springTab: "Spring",
395
+ customBezier: "Custom bezier",
396
+ customSpring: "Custom spring",
397
+ bounce: "Bounce",
398
+ bezierCurveEditor: "Bezier curve editor",
399
+ springCurvePreview: "Spring curve preview",
400
+ defaultEase: "Default",
401
+ },
258
402
  applyToSource: "Apply to source",
259
403
  applyToSourcePath: "Apply to source ({{path}})",
404
+ applyToSourceUnavailableCompiled:
405
+ "Source write-back isn't available yet for compiled framework routes (React/TS components). Ask the agent to edit the source file instead.",
260
406
  writingToSource: "Writing…",
407
+ appliedToSource: "Saved to {{path}}",
408
+ applyToSourceConflict:
409
+ "{{path}} changed on disk since it was opened. Reload the screen and try again.",
410
+ applyToSourceError: "Couldn't save to source: {{message}}",
261
411
  tokens: {
262
412
  title: "Tokens",
263
413
  newToken: "New token",
@@ -512,21 +662,14 @@ const enUS = {
512
662
  primitiveInsertFailed: "Could not add that layer to the screen",
513
663
  layerMoveFailed: "Could not move that layer",
514
664
  duplicateElementFailed: "Could not duplicate that element",
665
+ eyedropperUnsupported: "Eyedropper isn't supported in this browser",
515
666
  saveCopyError: "Could not save a copy of this design",
516
667
  auditRunFailed: "Unable to run design audit",
517
668
  componentCreated: "Component created",
518
669
  componentCreateFailed: "Could not create component",
519
670
  undoSkippedConcurrentEdit: "Skipped an undo — someone else moved that",
520
671
  redoSkippedConcurrentEdit: "Skipped a redo — someone else moved that",
521
- },
522
- localSourceEdit: {
523
- copyPrompt: "Copy prompt",
524
- askAi: "Ask AI",
525
- applyWithAi: "Apply with AI",
526
- copyPromptTooltip: "Copy prompt to clipboard",
527
- targeting: "Targeting:",
528
- describeElementChange: "Describe the change for this element…",
529
- describeChange: "Describe what you want to change…",
672
+ autoLayoutScreensUnsupported: "Add auto layout doesn't apply to screens",
530
673
  },
531
674
  },
532
675
  layersPanel: {
@@ -549,6 +692,20 @@ const enUS = {
549
692
  show: "Show layer",
550
693
  rename: "Rename layer",
551
694
  deleteBoardObject: "Delete board object",
695
+ copy: "Copy",
696
+ pasteHere: "Paste here",
697
+ duplicate: "Duplicate",
698
+ delete: "Delete",
699
+ group: "Group",
700
+ ungroup: "Ungroup",
701
+ bringForward: "Bring forward",
702
+ bringToFront: "Bring to front",
703
+ sendBackward: "Send backward",
704
+ sendToBack: "Send to back",
705
+ pasteToReplace: "Paste to replace",
706
+ frameSelection: "Frame selection",
707
+ flipHorizontal: "Flip horizontal",
708
+ flipVertical: "Flip vertical",
552
709
  },
553
710
  multiScreenCanvas: {
554
711
  duplicate: "Duplicate",
@@ -8267,6 +8424,16 @@ const designCanvasFeatureOverrides = {
8267
8424
  show: "顯示圖層",
8268
8425
  rename: "重新命名圖層",
8269
8426
  deleteBoardObject: "刪除畫布物件",
8427
+ copy: "複製",
8428
+ pasteHere: "貼在這裡",
8429
+ duplicate: "重製",
8430
+ delete: "刪除",
8431
+ group: "群組",
8432
+ ungroup: "取消群組",
8433
+ bringForward: "上移一層",
8434
+ bringToFront: "移到最上層",
8435
+ sendBackward: "下移一層",
8436
+ sendToBack: "移到最下層",
8270
8437
  },
8271
8438
  },
8272
8439
  "zh-CN": {
@@ -8277,6 +8444,7 @@ const designCanvasFeatureOverrides = {
8277
8444
  primitiveInsertFailed: "无法将该图层添加到画面",
8278
8445
  layerMoveFailed: "无法移动该图层",
8279
8446
  duplicateElementFailed: "无法复制该元素",
8447
+ eyedropperUnsupported: "此浏览器不支持取色器",
8280
8448
  },
8281
8449
  },
8282
8450
  editPanel: {
@@ -8285,9 +8453,12 @@ const designCanvasFeatureOverrides = {
8285
8453
  removeLayer: "移除图层",
8286
8454
  showLayer: "显示图层",
8287
8455
  hideLayer: "隐藏图层",
8456
+ reorderLayer: "重新排序图层",
8288
8457
  linkSides: "链接四边",
8289
8458
  unlinkSides: "取消链接四边",
8290
8459
  allSides: "全部",
8460
+ lockAspectRatio: "锁定宽高比",
8461
+ unlockAspectRatio: "解锁宽高比",
8291
8462
  cornerRadius: "圆角半径",
8292
8463
  independentCorners: "独立圆角",
8293
8464
  topLeft: "左上",
@@ -8299,6 +8470,7 @@ const designCanvasFeatureOverrides = {
8299
8470
  outline: "轮廓",
8300
8471
  inside: "内侧",
8301
8472
  outside: "外侧",
8473
+ center: "中心",
8302
8474
  dropShadow: "投影",
8303
8475
  addDropShadow: "新增投影",
8304
8476
  innerShadow: "内阴影",
@@ -8327,6 +8499,16 @@ const designCanvasFeatureOverrides = {
8327
8499
  show: "显示图层",
8328
8500
  rename: "重命名图层",
8329
8501
  deleteBoardObject: "删除画布对象",
8502
+ copy: "复制",
8503
+ pasteHere: "粘贴到此处",
8504
+ duplicate: "创建副本",
8505
+ delete: "删除",
8506
+ group: "编组",
8507
+ ungroup: "取消编组",
8508
+ bringForward: "上移一层",
8509
+ bringToFront: "置于顶层",
8510
+ sendBackward: "下移一层",
8511
+ sendToBack: "置于底层",
8330
8512
  },
8331
8513
  },
8332
8514
  "es-ES": {
@@ -8337,6 +8519,8 @@ const designCanvasFeatureOverrides = {
8337
8519
  primitiveInsertFailed: "No se pudo añadir esa capa a la pantalla",
8338
8520
  layerMoveFailed: "No se pudo mover esa capa",
8339
8521
  duplicateElementFailed: "No se pudo duplicar ese elemento",
8522
+ eyedropperUnsupported:
8523
+ "El cuentagotas no es compatible con este navegador",
8340
8524
  },
8341
8525
  },
8342
8526
  editPanel: {
@@ -8345,9 +8529,12 @@ const designCanvasFeatureOverrides = {
8345
8529
  removeLayer: "Eliminar capa",
8346
8530
  showLayer: "Mostrar capa",
8347
8531
  hideLayer: "Ocultar capa",
8532
+ reorderLayer: "Reordenar capa",
8348
8533
  linkSides: "Vincular lados",
8349
8534
  unlinkSides: "Desvincular lados",
8350
8535
  allSides: "Todo",
8536
+ lockAspectRatio: "Bloquear proporción",
8537
+ unlockAspectRatio: "Desbloquear proporción",
8351
8538
  cornerRadius: "Radio de esquina",
8352
8539
  independentCorners: "Esquinas independientes",
8353
8540
  topLeft: "SI",
@@ -8359,6 +8546,7 @@ const designCanvasFeatureOverrides = {
8359
8546
  outline: "Contorno",
8360
8547
  inside: "Interior",
8361
8548
  outside: "Exterior",
8549
+ center: "Centro",
8362
8550
  dropShadow: "Sombra paralela",
8363
8551
  addDropShadow: "Añadir sombra paralela",
8364
8552
  innerShadow: "Sombra interior",
@@ -8387,6 +8575,16 @@ const designCanvasFeatureOverrides = {
8387
8575
  show: "Mostrar capa",
8388
8576
  rename: "Renombrar capa",
8389
8577
  deleteBoardObject: "Eliminar objeto del lienzo",
8578
+ copy: "Copiar",
8579
+ pasteHere: "Pegar aquí",
8580
+ duplicate: "Duplicar",
8581
+ delete: "Eliminar",
8582
+ group: "Agrupar",
8583
+ ungroup: "Desagrupar",
8584
+ bringForward: "Traer adelante",
8585
+ bringToFront: "Traer al frente",
8586
+ sendBackward: "Enviar atrás",
8587
+ sendToBack: "Enviar al fondo",
8390
8588
  },
8391
8589
  },
8392
8590
  "fr-FR": {
@@ -8397,6 +8595,8 @@ const designCanvasFeatureOverrides = {
8397
8595
  primitiveInsertFailed: "Impossible d’ajouter ce calque à l’écran",
8398
8596
  layerMoveFailed: "Impossible de déplacer ce calque",
8399
8597
  duplicateElementFailed: "Impossible de dupliquer cet élément",
8598
+ eyedropperUnsupported:
8599
+ "La pipette n'est pas prise en charge par ce navigateur",
8400
8600
  },
8401
8601
  },
8402
8602
  editPanel: {
@@ -8405,9 +8605,12 @@ const designCanvasFeatureOverrides = {
8405
8605
  removeLayer: "Supprimer le calque",
8406
8606
  showLayer: "Afficher le calque",
8407
8607
  hideLayer: "Masquer le calque",
8608
+ reorderLayer: "Réorganiser le calque",
8408
8609
  linkSides: "Lier les côtés",
8409
8610
  unlinkSides: "Délier les côtés",
8410
8611
  allSides: "Tout",
8612
+ lockAspectRatio: "Verrouiller les proportions",
8613
+ unlockAspectRatio: "Déverrouiller les proportions",
8411
8614
  cornerRadius: "Rayon d’angle",
8412
8615
  independentCorners: "Angles indépendants",
8413
8616
  topLeft: "HG",
@@ -8419,6 +8622,7 @@ const designCanvasFeatureOverrides = {
8419
8622
  outline: "Contour",
8420
8623
  inside: "Intérieur",
8421
8624
  outside: "Extérieur",
8625
+ center: "Centre",
8422
8626
  dropShadow: "Ombre portée",
8423
8627
  addDropShadow: "Ajouter une ombre portée",
8424
8628
  innerShadow: "Ombre interne",
@@ -8447,6 +8651,16 @@ const designCanvasFeatureOverrides = {
8447
8651
  show: "Afficher le calque",
8448
8652
  rename: "Renommer le calque",
8449
8653
  deleteBoardObject: "Supprimer l’objet du canevas",
8654
+ copy: "Copier",
8655
+ pasteHere: "Coller ici",
8656
+ duplicate: "Dupliquer",
8657
+ delete: "Supprimer",
8658
+ group: "Grouper",
8659
+ ungroup: "Dissocier",
8660
+ bringForward: "Avancer",
8661
+ bringToFront: "Mettre au premier plan",
8662
+ sendBackward: "Reculer",
8663
+ sendToBack: "Mettre à l’arrière-plan",
8450
8664
  },
8451
8665
  },
8452
8666
  "de-DE": {
@@ -8458,6 +8672,8 @@ const designCanvasFeatureOverrides = {
8458
8672
  "Diese Ebene konnte nicht zur Ansicht hinzugefügt werden",
8459
8673
  layerMoveFailed: "Diese Ebene konnte nicht verschoben werden",
8460
8674
  duplicateElementFailed: "Dieses Element konnte nicht dupliziert werden",
8675
+ eyedropperUnsupported:
8676
+ "Die Pipette wird von diesem Browser nicht unterstützt",
8461
8677
  },
8462
8678
  },
8463
8679
  editPanel: {
@@ -8466,9 +8682,12 @@ const designCanvasFeatureOverrides = {
8466
8682
  removeLayer: "Ebene entfernen",
8467
8683
  showLayer: "Ebene anzeigen",
8468
8684
  hideLayer: "Ebene ausblenden",
8685
+ reorderLayer: "Ebene neu anordnen",
8469
8686
  linkSides: "Seiten verknüpfen",
8470
8687
  unlinkSides: "Seiten lösen",
8471
8688
  allSides: "Alle",
8689
+ lockAspectRatio: "Seitenverhältnis sperren",
8690
+ unlockAspectRatio: "Seitenverhältnis entsperren",
8472
8691
  cornerRadius: "Eckenradius",
8473
8692
  independentCorners: "Unabhängige Ecken",
8474
8693
  topLeft: "OL",
@@ -8480,6 +8699,7 @@ const designCanvasFeatureOverrides = {
8480
8699
  outline: "Kontur",
8481
8700
  inside: "Innen",
8482
8701
  outside: "Außen",
8702
+ center: "Mitte",
8483
8703
  dropShadow: "Schlagschatten",
8484
8704
  addDropShadow: "Schlagschatten hinzufügen",
8485
8705
  innerShadow: "Innerer Schatten",
@@ -8508,6 +8728,16 @@ const designCanvasFeatureOverrides = {
8508
8728
  show: "Ebene anzeigen",
8509
8729
  rename: "Ebene umbenennen",
8510
8730
  deleteBoardObject: "Canvas-Objekt löschen",
8731
+ copy: "Kopieren",
8732
+ pasteHere: "Hier einfügen",
8733
+ duplicate: "Duplizieren",
8734
+ delete: "Löschen",
8735
+ group: "Gruppieren",
8736
+ ungroup: "Gruppierung aufheben",
8737
+ bringForward: "Nach vorne",
8738
+ bringToFront: "In den Vordergrund",
8739
+ sendBackward: "Nach hinten",
8740
+ sendToBack: "In den Hintergrund",
8511
8741
  },
8512
8742
  },
8513
8743
  "ja-JP": {
@@ -8518,6 +8748,7 @@ const designCanvasFeatureOverrides = {
8518
8748
  primitiveInsertFailed: "そのレイヤーを画面に追加できませんでした",
8519
8749
  layerMoveFailed: "そのレイヤーを移動できませんでした",
8520
8750
  duplicateElementFailed: "その要素を複製できませんでした",
8751
+ eyedropperUnsupported: "このブラウザではスポイトツールを使用できません",
8521
8752
  },
8522
8753
  },
8523
8754
  editPanel: {
@@ -8526,9 +8757,12 @@ const designCanvasFeatureOverrides = {
8526
8757
  removeLayer: "レイヤーを削除",
8527
8758
  showLayer: "レイヤーを表示",
8528
8759
  hideLayer: "レイヤーを非表示",
8760
+ reorderLayer: "レイヤーを並べ替え",
8529
8761
  linkSides: "辺をリンク",
8530
8762
  unlinkSides: "辺のリンクを解除",
8531
8763
  allSides: "すべて",
8764
+ lockAspectRatio: "縦横比を固定",
8765
+ unlockAspectRatio: "縦横比の固定を解除",
8532
8766
  cornerRadius: "角丸",
8533
8767
  independentCorners: "個別の角",
8534
8768
  topLeft: "左上",
@@ -8540,6 +8774,7 @@ const designCanvasFeatureOverrides = {
8540
8774
  outline: "アウトライン",
8541
8775
  inside: "内側",
8542
8776
  outside: "外側",
8777
+ center: "中央",
8543
8778
  dropShadow: "ドロップシャドウ",
8544
8779
  addDropShadow: "ドロップシャドウを追加",
8545
8780
  innerShadow: "内側シャドウ",
@@ -8568,6 +8803,16 @@ const designCanvasFeatureOverrides = {
8568
8803
  show: "レイヤーを表示",
8569
8804
  rename: "レイヤー名を変更",
8570
8805
  deleteBoardObject: "キャンバスオブジェクトを削除",
8806
+ copy: "コピー",
8807
+ pasteHere: "ここに貼り付け",
8808
+ duplicate: "複製",
8809
+ delete: "削除",
8810
+ group: "グループ化",
8811
+ ungroup: "グループ解除",
8812
+ bringForward: "前面へ移動",
8813
+ bringToFront: "最前面へ移動",
8814
+ sendBackward: "背面へ移動",
8815
+ sendToBack: "最背面へ移動",
8571
8816
  },
8572
8817
  },
8573
8818
  "ko-KR": {
@@ -8578,6 +8823,7 @@ const designCanvasFeatureOverrides = {
8578
8823
  primitiveInsertFailed: "해당 레이어를 화면에 추가할 수 없습니다",
8579
8824
  layerMoveFailed: "해당 레이어를 이동할 수 없습니다",
8580
8825
  duplicateElementFailed: "해당 요소를 복제할 수 없습니다",
8826
+ eyedropperUnsupported: "이 브라우저에서는 스포이드를 지원하지 않습니다",
8581
8827
  },
8582
8828
  },
8583
8829
  editPanel: {
@@ -8586,9 +8832,12 @@ const designCanvasFeatureOverrides = {
8586
8832
  removeLayer: "레이어 제거",
8587
8833
  showLayer: "레이어 표시",
8588
8834
  hideLayer: "레이어 숨기기",
8835
+ reorderLayer: "레이어 순서 변경",
8589
8836
  linkSides: "면 연결",
8590
8837
  unlinkSides: "면 연결 해제",
8591
8838
  allSides: "모두",
8839
+ lockAspectRatio: "가로세로 비율 잠금",
8840
+ unlockAspectRatio: "가로세로 비율 잠금 해제",
8592
8841
  cornerRadius: "모서리 반경",
8593
8842
  independentCorners: "개별 모서리",
8594
8843
  topLeft: "왼쪽 위",
@@ -8600,6 +8849,7 @@ const designCanvasFeatureOverrides = {
8600
8849
  outline: "윤곽선",
8601
8850
  inside: "안쪽",
8602
8851
  outside: "바깥쪽",
8852
+ center: "중앙",
8603
8853
  dropShadow: "그림자",
8604
8854
  addDropShadow: "그림자 추가",
8605
8855
  innerShadow: "내부 그림자",
@@ -8628,6 +8878,16 @@ const designCanvasFeatureOverrides = {
8628
8878
  show: "레이어 표시",
8629
8879
  rename: "레이어 이름 변경",
8630
8880
  deleteBoardObject: "캔버스 오브젝트 삭제",
8881
+ copy: "복사",
8882
+ pasteHere: "여기에 붙여넣기",
8883
+ duplicate: "복제",
8884
+ delete: "삭제",
8885
+ group: "그룹화",
8886
+ ungroup: "그룹 해제",
8887
+ bringForward: "앞으로 가져오기",
8888
+ bringToFront: "맨 앞으로 가져오기",
8889
+ sendBackward: "뒤로 보내기",
8890
+ sendToBack: "맨 뒤로 보내기",
8631
8891
  },
8632
8892
  },
8633
8893
  "pt-BR": {
@@ -8638,6 +8898,8 @@ const designCanvasFeatureOverrides = {
8638
8898
  primitiveInsertFailed: "Não foi possível adicionar essa camada à tela",
8639
8899
  layerMoveFailed: "Não foi possível mover essa camada",
8640
8900
  duplicateElementFailed: "Não foi possível duplicar esse elemento",
8901
+ eyedropperUnsupported:
8902
+ "O conta-gotas não é compatível com este navegador",
8641
8903
  },
8642
8904
  },
8643
8905
  editPanel: {
@@ -8646,9 +8908,12 @@ const designCanvasFeatureOverrides = {
8646
8908
  removeLayer: "Remover camada",
8647
8909
  showLayer: "Mostrar camada",
8648
8910
  hideLayer: "Ocultar camada",
8911
+ reorderLayer: "Reordenar camada",
8649
8912
  linkSides: "Vincular lados",
8650
8913
  unlinkSides: "Desvincular lados",
8651
8914
  allSides: "Tudo",
8915
+ lockAspectRatio: "Bloquear proporção",
8916
+ unlockAspectRatio: "Desbloquear proporção",
8652
8917
  cornerRadius: "Raio do canto",
8653
8918
  independentCorners: "Cantos independentes",
8654
8919
  topLeft: "SE",
@@ -8660,6 +8925,7 @@ const designCanvasFeatureOverrides = {
8660
8925
  outline: "Contorno",
8661
8926
  inside: "Dentro",
8662
8927
  outside: "Fora",
8928
+ center: "Centro",
8663
8929
  dropShadow: "Sombra projetada",
8664
8930
  addDropShadow: "Adicionar sombra projetada",
8665
8931
  innerShadow: "Sombra interna",
@@ -8688,6 +8954,16 @@ const designCanvasFeatureOverrides = {
8688
8954
  show: "Mostrar camada",
8689
8955
  rename: "Renomear camada",
8690
8956
  deleteBoardObject: "Excluir objeto da tela",
8957
+ copy: "Copiar",
8958
+ pasteHere: "Colar aqui",
8959
+ duplicate: "Duplicar",
8960
+ delete: "Excluir",
8961
+ group: "Agrupar",
8962
+ ungroup: "Desagrupar",
8963
+ bringForward: "Trazer para frente",
8964
+ bringToFront: "Trazer para o topo",
8965
+ sendBackward: "Enviar para trás",
8966
+ sendToBack: "Enviar para o fundo",
8691
8967
  },
8692
8968
  },
8693
8969
  "hi-IN": {
@@ -8698,6 +8974,7 @@ const designCanvasFeatureOverrides = {
8698
8974
  primitiveInsertFailed: "उस परत को स्क्रीन में नहीं जोड़ा जा सका",
8699
8975
  layerMoveFailed: "उस परत को स्थानांतरित नहीं किया जा सका",
8700
8976
  duplicateElementFailed: "उस तत्व की प्रतिलिपि नहीं बनाई जा सकी",
8977
+ eyedropperUnsupported: "इस ब्राउज़र में आई-ड्रॉपर समर्थित नहीं है",
8701
8978
  },
8702
8979
  },
8703
8980
  editPanel: {
@@ -8706,9 +8983,12 @@ const designCanvasFeatureOverrides = {
8706
8983
  removeLayer: "परत हटाएं",
8707
8984
  showLayer: "परत दिखाएं",
8708
8985
  hideLayer: "परत छिपाएं",
8986
+ reorderLayer: "परत पुनः क्रमित करें",
8709
8987
  linkSides: "किनारे लिंक करें",
8710
8988
  unlinkSides: "किनारे अनलिंक करें",
8711
8989
  allSides: "सभी",
8990
+ lockAspectRatio: "पक्षानुपात लॉक करें",
8991
+ unlockAspectRatio: "पक्षानुपात अनलॉक करें",
8712
8992
  cornerRadius: "कोने की त्रिज्या",
8713
8993
  independentCorners: "स्वतंत्र कोने",
8714
8994
  topLeft: "ऊपर बायां",
@@ -8720,6 +9000,7 @@ const designCanvasFeatureOverrides = {
8720
9000
  outline: "आउटलाइन",
8721
9001
  inside: "अंदर",
8722
9002
  outside: "बाहर",
9003
+ center: "केंद्र",
8723
9004
  dropShadow: "ड्रॉप शैडो",
8724
9005
  addDropShadow: "ड्रॉप शैडो जोड़ें",
8725
9006
  innerShadow: "अंदरूनी शैडो",
@@ -8748,6 +9029,16 @@ const designCanvasFeatureOverrides = {
8748
9029
  show: "परत दिखाएं",
8749
9030
  rename: "परत का नाम बदलें",
8750
9031
  deleteBoardObject: "कैनवास ऑब्जेक्ट हटाएं",
9032
+ copy: "कॉपी करें",
9033
+ pasteHere: "यहां चिपकाएं",
9034
+ duplicate: "डुप्लिकेट करें",
9035
+ delete: "हटाएं",
9036
+ group: "समूह बनाएं",
9037
+ ungroup: "समूह हटाएं",
9038
+ bringForward: "आगे लाएं",
9039
+ bringToFront: "सबसे आगे लाएं",
9040
+ sendBackward: "पीछे भेजें",
9041
+ sendToBack: "सबसे पीछे भेजें",
8751
9042
  },
8752
9043
  },
8753
9044
  "ar-SA": {
@@ -8758,6 +9049,7 @@ const designCanvasFeatureOverrides = {
8758
9049
  primitiveInsertFailed: "تعذرت إضافة تلك الطبقة إلى الشاشة",
8759
9050
  layerMoveFailed: "تعذر نقل تلك الطبقة",
8760
9051
  duplicateElementFailed: "تعذّر تكرار هذا العنصر",
9052
+ eyedropperUnsupported: "أداة القطارة غير مدعومة في هذا المتصفح",
8761
9053
  },
8762
9054
  },
8763
9055
  editPanel: {
@@ -8766,9 +9058,12 @@ const designCanvasFeatureOverrides = {
8766
9058
  removeLayer: "إزالة طبقة",
8767
9059
  showLayer: "إظهار الطبقة",
8768
9060
  hideLayer: "إخفاء الطبقة",
9061
+ reorderLayer: "إعادة ترتيب الطبقة",
8769
9062
  linkSides: "ربط الجوانب",
8770
9063
  unlinkSides: "إلغاء ربط الجوانب",
8771
9064
  allSides: "الكل",
9065
+ lockAspectRatio: "قفل نسبة العرض إلى الارتفاع",
9066
+ unlockAspectRatio: "إلغاء قفل نسبة العرض إلى الارتفاع",
8772
9067
  cornerRadius: "نصف قطر الزاوية",
8773
9068
  independentCorners: "زوايا مستقلة",
8774
9069
  topLeft: "أعلى يسار",
@@ -8780,6 +9075,7 @@ const designCanvasFeatureOverrides = {
8780
9075
  outline: "مخطط",
8781
9076
  inside: "داخلي",
8782
9077
  outside: "خارجي",
9078
+ center: "وسط",
8783
9079
  dropShadow: "ظل ساقط",
8784
9080
  addDropShadow: "إضافة ظل ساقط",
8785
9081
  innerShadow: "ظل داخلي",
@@ -8808,6 +9104,16 @@ const designCanvasFeatureOverrides = {
8808
9104
  show: "إظهار الطبقة",
8809
9105
  rename: "إعادة تسمية الطبقة",
8810
9106
  deleteBoardObject: "حذف كائن اللوحة",
9107
+ copy: "نسخ",
9108
+ pasteHere: "لصق هنا",
9109
+ duplicate: "تكرار",
9110
+ delete: "حذف",
9111
+ group: "تجميع",
9112
+ ungroup: "إلغاء التجميع",
9113
+ bringForward: "إحضار للأمام",
9114
+ bringToFront: "إحضار إلى الأمام",
9115
+ sendBackward: "إرسال للخلف",
9116
+ sendToBack: "إرسال إلى الخلف",
8811
9117
  },
8812
9118
  },
8813
9119
  } satisfies Record<Exclude<LocaleCode, "en-US">, PartialMessages>;
@@ -9471,139 +9777,6 @@ const designVisualEditOverrides = {
9471
9777
  },
9472
9778
  } satisfies Record<Exclude<LocaleCode, "en-US">, PartialMessages>;
9473
9779
 
9474
- const designLocalSourceEditOverrides = {
9475
- "zh-TW": {
9476
- designEditor: {
9477
- localSourceEdit: {
9478
- copyPrompt: "複製提示",
9479
- askAi: "詢問 AI",
9480
- applyWithAi: "用 AI 套用",
9481
- copyPromptTooltip: "將提示複製到剪貼簿",
9482
- targeting: "目標:",
9483
- describeElementChange: "描述要對此元素進行的更改…",
9484
- describeChange: "描述您想要更改的內容…",
9485
- },
9486
- },
9487
- },
9488
- "zh-CN": {
9489
- designEditor: {
9490
- localSourceEdit: {
9491
- copyPrompt: "复制提示",
9492
- askAi: "询问 AI",
9493
- applyWithAi: "用 AI 应用",
9494
- copyPromptTooltip: "将提示复制到剪贴板",
9495
- targeting: "目标:",
9496
- describeElementChange: "描述要对此元素进行的更改…",
9497
- describeChange: "描述您想要更改的内容…",
9498
- },
9499
- },
9500
- },
9501
- "es-ES": {
9502
- designEditor: {
9503
- localSourceEdit: {
9504
- copyPrompt: "Copiar prompt",
9505
- askAi: "Preguntar a la IA",
9506
- applyWithAi: "Aplicar con IA",
9507
- copyPromptTooltip: "Copiar prompt al portapapeles",
9508
- targeting: "Objetivo:",
9509
- describeElementChange: "Describe el cambio para este elemento…",
9510
- describeChange: "Describe lo que quieres cambiar…",
9511
- },
9512
- },
9513
- },
9514
- "fr-FR": {
9515
- designEditor: {
9516
- localSourceEdit: {
9517
- copyPrompt: "Copier le prompt",
9518
- askAi: "Demander à l'IA",
9519
- applyWithAi: "Appliquer avec l'IA",
9520
- copyPromptTooltip: "Copier le prompt dans le presse-papiers",
9521
- targeting: "Cible :",
9522
- describeElementChange: "Décrivez la modification pour cet élément…",
9523
- describeChange: "Décrivez ce que vous voulez changer…",
9524
- },
9525
- },
9526
- },
9527
- "de-DE": {
9528
- designEditor: {
9529
- localSourceEdit: {
9530
- copyPrompt: "Prompt kopieren",
9531
- askAi: "KI fragen",
9532
- applyWithAi: "Mit KI anwenden",
9533
- copyPromptTooltip: "Prompt in die Zwischenablage kopieren",
9534
- targeting: "Ziel:",
9535
- describeElementChange: "Beschreibe die Änderung für dieses Element…",
9536
- describeChange: "Beschreibe, was du ändern möchtest…",
9537
- },
9538
- },
9539
- },
9540
- "ja-JP": {
9541
- designEditor: {
9542
- localSourceEdit: {
9543
- copyPrompt: "プロンプトをコピー",
9544
- askAi: "AI に質問",
9545
- applyWithAi: "AI で適用",
9546
- copyPromptTooltip: "プロンプトをクリップボードにコピー",
9547
- targeting: "対象:",
9548
- describeElementChange: "この要素への変更を説明してください…",
9549
- describeChange: "変更したい内容を説明してください…",
9550
- },
9551
- },
9552
- },
9553
- "ko-KR": {
9554
- designEditor: {
9555
- localSourceEdit: {
9556
- copyPrompt: "프롬프트 복사",
9557
- askAi: "AI에 질문",
9558
- applyWithAi: "AI로 적용",
9559
- copyPromptTooltip: "프롬프트를 클립보드에 복사",
9560
- targeting: "대상:",
9561
- describeElementChange: "이 요소에 대한 변경 사항을 설명하세요…",
9562
- describeChange: "변경하려는 내용을 설명하세요…",
9563
- },
9564
- },
9565
- },
9566
- "pt-BR": {
9567
- designEditor: {
9568
- localSourceEdit: {
9569
- copyPrompt: "Copiar prompt",
9570
- askAi: "Perguntar à IA",
9571
- applyWithAi: "Aplicar com IA",
9572
- copyPromptTooltip: "Copiar prompt para a área de transferência",
9573
- targeting: "Alvo:",
9574
- describeElementChange: "Descreva a alteração para este elemento…",
9575
- describeChange: "Descreva o que você quer mudar…",
9576
- },
9577
- },
9578
- },
9579
- "hi-IN": {
9580
- designEditor: {
9581
- localSourceEdit: {
9582
- copyPrompt: "Prompt कॉपी करें",
9583
- askAi: "AI से पूछें",
9584
- applyWithAi: "AI से लागू करें",
9585
- copyPromptTooltip: "Prompt को clipboard पर कॉपी करें",
9586
- targeting: "लक्ष्य:",
9587
- describeElementChange: "इस element के लिए बदलाव बताएं…",
9588
- describeChange: "आप क्या बदलना चाहते हैं, बताएं…",
9589
- },
9590
- },
9591
- },
9592
- "ar-SA": {
9593
- designEditor: {
9594
- localSourceEdit: {
9595
- copyPrompt: "نسخ الموجّه",
9596
- askAi: "اسأل الذكاء الاصطناعي",
9597
- applyWithAi: "تطبيق بالذكاء الاصطناعي",
9598
- copyPromptTooltip: "نسخ الموجّه إلى الحافظة",
9599
- targeting: "الهدف:",
9600
- describeElementChange: "صف التغيير المطلوب على هذا العنصر…",
9601
- describeChange: "صف ما تريد تغييره…",
9602
- },
9603
- },
9604
- },
9605
- } satisfies Record<Exclude<LocaleCode, "en-US">, PartialMessages>;
9606
-
9607
9780
  const designPendingVisualStyleOverrides = {
9608
9781
  "zh-TW": {
9609
9782
  designEditor: {
@@ -9827,7 +10000,13 @@ const designLeftRailOverrides = {
9827
10000
  designEditor: {
9828
10001
  applyToSource: "套用至來源",
9829
10002
  applyToSourcePath: "套用至來源({{path}})",
10003
+ applyToSourceUnavailableCompiled:
10004
+ "編譯後的框架路由(React/TS 元件)尚不支援寫回來源。請改為請代理編輯來源檔案。",
9830
10005
  writingToSource: "寫入中…",
10006
+ appliedToSource: "已儲存至 {{path}}",
10007
+ applyToSourceConflict:
10008
+ "{{path}} 自開啟後已在磁碟上變更。請重新載入畫面後再試一次。",
10009
+ applyToSourceError: "無法儲存至來源:{{message}}",
9831
10010
  leftRail: {
9832
10011
  file: "檔案",
9833
10012
  agent: "代理",
@@ -9842,7 +10021,13 @@ const designLeftRailOverrides = {
9842
10021
  designEditor: {
9843
10022
  applyToSource: "应用到源文件",
9844
10023
  applyToSourcePath: "应用到源文件({{path}})",
10024
+ applyToSourceUnavailableCompiled:
10025
+ "编译后的框架路由(React/TS 组件)暂不支持写回源文件。请让代理直接编辑源文件。",
9845
10026
  writingToSource: "正在写入…",
10027
+ appliedToSource: "已保存到 {{path}}",
10028
+ applyToSourceConflict:
10029
+ "{{path}} 自打开后已在磁盘上发生变化。请重新加载页面后重试。",
10030
+ applyToSourceError: "无法保存到源文件:{{message}}",
9846
10031
  leftRail: {
9847
10032
  file: "文件",
9848
10033
  agent: "代理",
@@ -9858,7 +10043,13 @@ const designLeftRailOverrides = {
9858
10043
  designEditor: {
9859
10044
  applyToSource: "Aplicar al código fuente",
9860
10045
  applyToSourcePath: "Aplicar al código fuente ({{path}})",
10046
+ applyToSourceUnavailableCompiled:
10047
+ "La escritura al código fuente aún no está disponible para rutas del framework compiladas (componentes React/TS). Pide al agente que edite el archivo fuente en su lugar.",
9861
10048
  writingToSource: "Escribiendo…",
10049
+ appliedToSource: "Guardado en {{path}}",
10050
+ applyToSourceConflict:
10051
+ "{{path}} cambió en el disco desde que se abrió. Recarga la pantalla e inténtalo de nuevo.",
10052
+ applyToSourceError: "No se pudo guardar en el código fuente: {{message}}",
9862
10053
  leftRail: {
9863
10054
  file: "Archivo",
9864
10055
  agent: "Agente",
@@ -9874,7 +10065,14 @@ const designLeftRailOverrides = {
9874
10065
  designEditor: {
9875
10066
  applyToSource: "Appliquer à la source",
9876
10067
  applyToSourcePath: "Appliquer à la source ({{path}})",
10068
+ applyToSourceUnavailableCompiled:
10069
+ "La réécriture vers la source n'est pas encore disponible pour les routes de framework compilées (composants React/TS). Demandez à l'agent de modifier directement le fichier source.",
9877
10070
  writingToSource: "Écriture…",
10071
+ appliedToSource: "Enregistré dans {{path}}",
10072
+ applyToSourceConflict:
10073
+ "{{path}} a été modifié sur le disque depuis son ouverture. Rechargez l'écran et réessayez.",
10074
+ applyToSourceError:
10075
+ "Impossible d'enregistrer dans la source : {{message}}",
9878
10076
  leftRail: {
9879
10077
  file: "Fichier",
9880
10078
  agent: "Agent",
@@ -9890,7 +10088,13 @@ const designLeftRailOverrides = {
9890
10088
  designEditor: {
9891
10089
  applyToSource: "Auf Quelle anwenden",
9892
10090
  applyToSourcePath: "Auf Quelle anwenden ({{path}})",
10091
+ applyToSourceUnavailableCompiled:
10092
+ "Das Zurückschreiben in die Quelle ist für kompilierte Framework-Routen (React/TS-Komponenten) noch nicht verfügbar. Bitte den Agenten, die Quelldatei stattdessen zu bearbeiten.",
9893
10093
  writingToSource: "Wird geschrieben…",
10094
+ appliedToSource: "In {{path}} gespeichert",
10095
+ applyToSourceConflict:
10096
+ "{{path}} wurde seit dem Öffnen auf der Festplatte geändert. Bildschirm neu laden und erneut versuchen.",
10097
+ applyToSourceError: "Speichern in Quelle fehlgeschlagen: {{message}}",
9894
10098
  leftRail: {
9895
10099
  file: "Datei",
9896
10100
  agent: "Agent",
@@ -9906,7 +10110,13 @@ const designLeftRailOverrides = {
9906
10110
  designEditor: {
9907
10111
  applyToSource: "ソースに適用",
9908
10112
  applyToSourcePath: "ソースに適用({{path}})",
10113
+ applyToSourceUnavailableCompiled:
10114
+ "コンパイル済みのフレームワークルート(React/TSコンポーネント)では、ソースへの書き戻しはまだ利用できません。エージェントにソースファイルを直接編集するよう依頼してください。",
9909
10115
  writingToSource: "書き込み中…",
10116
+ appliedToSource: "{{path}} に保存しました",
10117
+ applyToSourceConflict:
10118
+ "{{path}} は開いた後にディスク上で変更されています。画面を再読み込みしてもう一度お試しください。",
10119
+ applyToSourceError: "ソースへの保存に失敗しました: {{message}}",
9910
10120
  leftRail: {
9911
10121
  file: "ファイル",
9912
10122
  agent: "エージェント",
@@ -9922,7 +10132,13 @@ const designLeftRailOverrides = {
9922
10132
  designEditor: {
9923
10133
  applyToSource: "소스에 적용",
9924
10134
  applyToSourcePath: "소스에 적용({{path}})",
10135
+ applyToSourceUnavailableCompiled:
10136
+ "컴파일된 프레임워크 라우트(React/TS 컴포넌트)에는 아직 소스로 다시 쓰기 기능을 사용할 수 없습니다. 에이전트에게 소스 파일을 직접 편집하도록 요청하세요.",
9925
10137
  writingToSource: "쓰는 중…",
10138
+ appliedToSource: "{{path}}에 저장됨",
10139
+ applyToSourceConflict:
10140
+ "{{path}}이(가) 열린 이후 디스크에서 변경되었습니다. 화면을 새로고침한 후 다시 시도하세요.",
10141
+ applyToSourceError: "소스에 저장하지 못했습니다: {{message}}",
9926
10142
  leftRail: {
9927
10143
  file: "파일",
9928
10144
  agent: "에이전트",
@@ -9938,7 +10154,13 @@ const designLeftRailOverrides = {
9938
10154
  designEditor: {
9939
10155
  applyToSource: "Aplicar à origem",
9940
10156
  applyToSourcePath: "Aplicar à origem ({{path}})",
10157
+ applyToSourceUnavailableCompiled:
10158
+ "A gravação de volta na origem ainda não está disponível para rotas de framework compiladas (componentes React/TS). Peça ao agente para editar o arquivo de origem em vez disso.",
9941
10159
  writingToSource: "Gravando…",
10160
+ appliedToSource: "Salvo em {{path}}",
10161
+ applyToSourceConflict:
10162
+ "{{path}} foi alterado no disco desde que foi aberto. Recarregue a tela e tente novamente.",
10163
+ applyToSourceError: "Não foi possível salvar na origem: {{message}}",
9942
10164
  leftRail: {
9943
10165
  file: "Arquivo",
9944
10166
  agent: "Agente",
@@ -9954,7 +10176,13 @@ const designLeftRailOverrides = {
9954
10176
  designEditor: {
9955
10177
  applyToSource: "स्रोत पर लागू करें",
9956
10178
  applyToSourcePath: "स्रोत पर लागू करें ({{path}})",
10179
+ applyToSourceUnavailableCompiled:
10180
+ "कंपाइल की गई फ़्रेमवर्क रूट्स (React/TS कॉम्पोनेंट) के लिए स्रोत में वापस लिखना अभी उपलब्ध नहीं है। इसके बजाय एजेंट से स्रोत फ़ाइल संपादित करने को कहें।",
9957
10181
  writingToSource: "लिखा जा रहा है…",
10182
+ appliedToSource: "{{path}} में सहेजा गया",
10183
+ applyToSourceConflict:
10184
+ "{{path}} इसके खुलने के बाद डिस्क पर बदल गई है। स्क्रीन को रीलोड करें और फिर से प्रयास करें।",
10185
+ applyToSourceError: "स्रोत में सहेजा नहीं जा सका: {{message}}",
9958
10186
  leftRail: {
9959
10187
  file: "फ़ाइल",
9960
10188
  agent: "एजेंट",
@@ -9970,7 +10198,13 @@ const designLeftRailOverrides = {
9970
10198
  designEditor: {
9971
10199
  applyToSource: "تطبيق على المصدر",
9972
10200
  applyToSourcePath: "تطبيق على المصدر ({{path}})",
10201
+ applyToSourceUnavailableCompiled:
10202
+ "الكتابة إلى المصدر غير متاحة بعد لمسارات الإطار المُجمَّعة (مكوّنات React/TS). يُرجى مطالبة الوكيل بتعديل ملف المصدر بدلاً من ذلك.",
9973
10203
  writingToSource: "جارٍ الكتابة…",
10204
+ appliedToSource: "تم الحفظ في {{path}}",
10205
+ applyToSourceConflict:
10206
+ "تم تغيير {{path}} على القرص منذ فتحه. أعد تحميل الشاشة وحاول مرة أخرى.",
10207
+ applyToSourceError: "تعذّر الحفظ في المصدر: {{message}}",
9974
10208
  leftRail: {
9975
10209
  file: "ملف",
9976
10210
  agent: "الوكيل",
@@ -10561,6 +10795,1219 @@ const designImportOverrides = {
10561
10795
  },
10562
10796
  } satisfies Record<Exclude<LocaleCode, "en-US">, PartialMessages>;
10563
10797
 
10798
+ // Fill section's "Styles" affordance (color-styles library) — currently a
10799
+ // disabled/coming-soon placeholder icon button rather than a dead click.
10800
+ const designFillStylesComingSoonOverrides = {
10801
+ "zh-TW": { editPanel: { labels: { stylesComingSoon: "樣式 — 即將推出" } } },
10802
+ "zh-CN": { editPanel: { labels: { stylesComingSoon: "样式 — 即将推出" } } },
10803
+ "es-ES": {
10804
+ editPanel: { labels: { stylesComingSoon: "Estilos — Próximamente" } },
10805
+ },
10806
+ "fr-FR": {
10807
+ editPanel: { labels: { stylesComingSoon: "Styles — Bientôt disponible" } },
10808
+ },
10809
+ "de-DE": {
10810
+ editPanel: { labels: { stylesComingSoon: "Stile — Demnächst verfügbar" } },
10811
+ },
10812
+ "ja-JP": {
10813
+ editPanel: { labels: { stylesComingSoon: "スタイル — 近日対応" } },
10814
+ },
10815
+ "ko-KR": {
10816
+ editPanel: { labels: { stylesComingSoon: "스타일 — 곧 제공" } },
10817
+ },
10818
+ "pt-BR": {
10819
+ editPanel: { labels: { stylesComingSoon: "Estilos — Em breve" } },
10820
+ },
10821
+ "hi-IN": {
10822
+ editPanel: {
10823
+ labels: { stylesComingSoon: "स्टाइल — जल्द आ रहा है" },
10824
+ },
10825
+ },
10826
+ "ar-SA": {
10827
+ editPanel: { labels: { stylesComingSoon: "الأنماط — قريبًا" } },
10828
+ },
10829
+ } satisfies Record<Exclude<LocaleCode, "en-US">, PartialMessages>;
10830
+
10831
+ // Frame-tool size-presets panel (Figma parity): the right-panel title plus
10832
+ // category group labels shown while the Frame tool is armed. Preset device
10833
+ // names (iPhone 16 Pro, etc.) are untranslated product-name literals, defined
10834
+ // only once in `enUS.editPanel.framePresets.categories` — no override needed.
10835
+ const designFramePresetsOverrides = {
10836
+ "zh-CN": {
10837
+ editPanel: {
10838
+ framePresets: {
10839
+ title: "画框",
10840
+ categories: {
10841
+ phone: "手机",
10842
+ tablet: "平板",
10843
+ desktop: "桌面",
10844
+ presentation: "演示文稿",
10845
+ watch: "手表",
10846
+ paper: "纸张",
10847
+ socialMedia: "社交媒体",
10848
+ },
10849
+ },
10850
+ },
10851
+ },
10852
+ "es-ES": {
10853
+ editPanel: {
10854
+ framePresets: {
10855
+ title: "Marco",
10856
+ categories: {
10857
+ phone: "Teléfono",
10858
+ tablet: "Tableta",
10859
+ desktop: "Escritorio",
10860
+ presentation: "Presentación",
10861
+ watch: "Reloj",
10862
+ paper: "Papel",
10863
+ socialMedia: "Redes sociales",
10864
+ },
10865
+ },
10866
+ },
10867
+ },
10868
+ "fr-FR": {
10869
+ editPanel: {
10870
+ framePresets: {
10871
+ title: "Cadre",
10872
+ categories: {
10873
+ phone: "Téléphone",
10874
+ tablet: "Tablette",
10875
+ desktop: "Bureau",
10876
+ presentation: "Présentation",
10877
+ watch: "Montre",
10878
+ paper: "Papier",
10879
+ socialMedia: "Réseaux sociaux",
10880
+ },
10881
+ },
10882
+ },
10883
+ },
10884
+ "de-DE": {
10885
+ editPanel: {
10886
+ framePresets: {
10887
+ title: "Rahmen",
10888
+ categories: {
10889
+ phone: "Telefon",
10890
+ tablet: "Tablet",
10891
+ desktop: "Desktop",
10892
+ presentation: "Präsentation",
10893
+ watch: "Uhr",
10894
+ paper: "Papier",
10895
+ socialMedia: "Soziale Medien",
10896
+ },
10897
+ },
10898
+ },
10899
+ },
10900
+ "ja-JP": {
10901
+ editPanel: {
10902
+ framePresets: {
10903
+ title: "フレーム",
10904
+ categories: {
10905
+ phone: "電話",
10906
+ tablet: "タブレット",
10907
+ desktop: "デスクトップ",
10908
+ presentation: "プレゼンテーション",
10909
+ watch: "ウォッチ",
10910
+ paper: "用紙",
10911
+ socialMedia: "ソーシャルメディア",
10912
+ },
10913
+ },
10914
+ },
10915
+ },
10916
+ "ko-KR": {
10917
+ editPanel: {
10918
+ framePresets: {
10919
+ title: "프레임",
10920
+ categories: {
10921
+ phone: "휴대폰",
10922
+ tablet: "태블릿",
10923
+ desktop: "데스크톱",
10924
+ presentation: "프레젠테이션",
10925
+ watch: "시계",
10926
+ paper: "용지",
10927
+ socialMedia: "소셜 미디어",
10928
+ },
10929
+ },
10930
+ },
10931
+ },
10932
+ "pt-BR": {
10933
+ editPanel: {
10934
+ framePresets: {
10935
+ title: "Quadro",
10936
+ categories: {
10937
+ phone: "Celular",
10938
+ tablet: "Tablet",
10939
+ desktop: "Área de trabalho",
10940
+ presentation: "Apresentação",
10941
+ watch: "Relógio",
10942
+ paper: "Papel",
10943
+ socialMedia: "Redes sociais",
10944
+ },
10945
+ },
10946
+ },
10947
+ },
10948
+ "hi-IN": {
10949
+ editPanel: {
10950
+ framePresets: {
10951
+ title: "फ़्रेम",
10952
+ categories: {
10953
+ phone: "फ़ोन",
10954
+ tablet: "टैबलेट",
10955
+ desktop: "डेस्कटॉप",
10956
+ presentation: "प्रेज़ेंटेशन",
10957
+ watch: "वॉच",
10958
+ paper: "पेपर",
10959
+ socialMedia: "सोशल मीडिया",
10960
+ },
10961
+ },
10962
+ },
10963
+ },
10964
+ "ar-SA": {
10965
+ editPanel: {
10966
+ framePresets: {
10967
+ title: "الإطار",
10968
+ categories: {
10969
+ phone: "الهاتف",
10970
+ tablet: "الجهاز اللوحي",
10971
+ desktop: "سطح المكتب",
10972
+ presentation: "العرض التقديمي",
10973
+ watch: "الساعة",
10974
+ paper: "الورق",
10975
+ socialMedia: "وسائل التواصل الاجتماعي",
10976
+ },
10977
+ },
10978
+ },
10979
+ },
10980
+ } satisfies Record<Exclude<LocaleCode, "en-US" | "zh-TW">, PartialMessages>;
10981
+
10982
+ // Figma-parity alignment/distribute/tidy/auto-layout sweep: the reshaped
10983
+ // LayersPanel context menu's new pasteToReplace/frameSelection/
10984
+ // flipHorizontal/flipVertical items, plus the one new toast the Shift+A
10985
+ // "Add auto layout" handler introduces for a no-op screens selection.
10986
+ // zh-TW's translations live directly in app/i18n/zh-TW.ts instead (see that
10987
+ // file's layersPanel block) following this file's existing zh-TW convention.
10988
+ const designAlignmentOverrides = {
10989
+ "zh-CN": {
10990
+ designEditor: {
10991
+ toasts: {
10992
+ autoLayoutScreensUnsupported: "自动布局不适用于屏幕",
10993
+ },
10994
+ },
10995
+ layersPanel: {
10996
+ pasteToReplace: "粘贴替换",
10997
+ frameSelection: "创建画框",
10998
+ flipHorizontal: "水平翻转",
10999
+ flipVertical: "垂直翻转",
11000
+ },
11001
+ },
11002
+ "es-ES": {
11003
+ designEditor: {
11004
+ toasts: {
11005
+ autoLayoutScreensUnsupported:
11006
+ "Agregar diseño automático no se aplica a las pantallas",
11007
+ },
11008
+ },
11009
+ layersPanel: {
11010
+ pasteToReplace: "Pegar para reemplazar",
11011
+ frameSelection: "Enmarcar selección",
11012
+ flipHorizontal: "Voltear horizontalmente",
11013
+ flipVertical: "Voltear verticalmente",
11014
+ },
11015
+ },
11016
+ "fr-FR": {
11017
+ designEditor: {
11018
+ toasts: {
11019
+ autoLayoutScreensUnsupported:
11020
+ "Ajouter une disposition automatique ne s'applique pas aux écrans",
11021
+ },
11022
+ },
11023
+ layersPanel: {
11024
+ pasteToReplace: "Coller pour remplacer",
11025
+ frameSelection: "Encadrer la sélection",
11026
+ flipHorizontal: "Retourner horizontalement",
11027
+ flipVertical: "Retourner verticalement",
11028
+ },
11029
+ },
11030
+ "de-DE": {
11031
+ designEditor: {
11032
+ toasts: {
11033
+ autoLayoutScreensUnsupported:
11034
+ "Auto-Layout hinzufügen gilt nicht für Bildschirme",
11035
+ },
11036
+ },
11037
+ layersPanel: {
11038
+ pasteToReplace: "Einfügen zum Ersetzen",
11039
+ frameSelection: "Auswahl rahmen",
11040
+ flipHorizontal: "Horizontal spiegeln",
11041
+ flipVertical: "Vertikal spiegeln",
11042
+ },
11043
+ },
11044
+ "ja-JP": {
11045
+ designEditor: {
11046
+ toasts: {
11047
+ autoLayoutScreensUnsupported:
11048
+ "オートレイアウトの追加は画面には適用されません",
11049
+ },
11050
+ },
11051
+ layersPanel: {
11052
+ pasteToReplace: "置き換えて貼り付け",
11053
+ frameSelection: "選択範囲をフレーム化",
11054
+ flipHorizontal: "水平方向に反転",
11055
+ flipVertical: "垂直方向に反転",
11056
+ },
11057
+ },
11058
+ "ko-KR": {
11059
+ designEditor: {
11060
+ toasts: {
11061
+ autoLayoutScreensUnsupported:
11062
+ "오토 레이아웃 추가는 화면에 적용되지 않습니다",
11063
+ },
11064
+ },
11065
+ layersPanel: {
11066
+ pasteToReplace: "교체하여 붙여넣기",
11067
+ frameSelection: "선택 영역 프레임화",
11068
+ flipHorizontal: "수평 뒤집기",
11069
+ flipVertical: "수직 뒤집기",
11070
+ },
11071
+ },
11072
+ "pt-BR": {
11073
+ designEditor: {
11074
+ toasts: {
11075
+ autoLayoutScreensUnsupported:
11076
+ "Adicionar layout automático não se aplica a telas",
11077
+ },
11078
+ },
11079
+ layersPanel: {
11080
+ pasteToReplace: "Colar para substituir",
11081
+ frameSelection: "Enquadrar seleção",
11082
+ flipHorizontal: "Inverter horizontalmente",
11083
+ flipVertical: "Inverter verticalmente",
11084
+ },
11085
+ },
11086
+ "hi-IN": {
11087
+ designEditor: {
11088
+ toasts: {
11089
+ autoLayoutScreensUnsupported: "ऑटो लेआउट जोड़ें स्क्रीन पर लागू नहीं होता",
11090
+ },
11091
+ },
11092
+ layersPanel: {
11093
+ pasteToReplace: "बदलने के लिए पेस्ट करें",
11094
+ frameSelection: "चयन को फ़्रेम करें",
11095
+ flipHorizontal: "क्षैतिज रूप से फ़्लिप करें",
11096
+ flipVertical: "लंबवत रूप से फ़्लिप करें",
11097
+ },
11098
+ },
11099
+ "ar-SA": {
11100
+ designEditor: {
11101
+ toasts: {
11102
+ autoLayoutScreensUnsupported:
11103
+ "إضافة التخطيط التلقائي لا تنطبق على الشاشات",
11104
+ },
11105
+ },
11106
+ layersPanel: {
11107
+ pasteToReplace: "لصق للاستبدال",
11108
+ frameSelection: "تأطير التحديد",
11109
+ flipHorizontal: "قلب أفقيًا",
11110
+ flipVertical: "قلب رأسيًا",
11111
+ },
11112
+ },
11113
+ } satisfies Record<Exclude<LocaleCode, "en-US" | "zh-TW">, PartialMessages>;
11114
+
11115
+ // 3D-rotation inspector expander (Rotate X/Y, Perspective, the custom-
11116
+ // transform note) plus the code-backed GLSL shader picker (GlslShaderPanel):
11117
+ // fill/effect panel titles, the "Created by you"/"Presets" sections, saved-
11118
+ // shader and preset-category labels, the detail-view toolbar, the Code-panel
11119
+ // hint sentence, and the shader toasts. zh-TW's translations live directly in
11120
+ // app/i18n/zh-TW.ts instead, following this file's existing zh-TW convention.
11121
+ const designShaderAndRotationOverrides = {
11122
+ "zh-CN": {
11123
+ editPanel: {
11124
+ labels: {
11125
+ rotation3d: "3D 旋转",
11126
+ rotationX: "旋转 X",
11127
+ rotationY: "旋转 Y",
11128
+ perspective: "透视",
11129
+ perspectiveHint: "透视(空/0 = 无)",
11130
+ customTransform: "自定义变换 — 无法编辑为 X/Y/Z 旋转",
11131
+ shaderEffectType: "着色器",
11132
+ },
11133
+ shaders: {
11134
+ fillsTitle: "着色器填充",
11135
+ effectsTitle: "着色器效果",
11136
+ createdByYou: "你创建的",
11137
+ presets: "预设",
11138
+ createNew: "新建",
11139
+ ai: "AI",
11140
+ savedInThisDesign: "已保存在此设计中",
11141
+ noMatches: "没有匹配搜索的着色器",
11142
+ backToBrowser: "返回着色器浏览",
11143
+ closePanel: "关闭着色器面板",
11144
+ editCode: "编辑 GLSL 代码",
11145
+ removeShader: "移除着色器",
11146
+ removeShaderEffect: "移除着色器效果",
11147
+ noUniforms: "此着色器没有可调整的参数",
11148
+ codeHint:
11149
+ "GLSL 源代码已保存在此屏幕的 HTML 中 — 打开代码面板进行编辑。",
11150
+ selectElementFirst: "请先选择一个屏幕元素",
11151
+ selectCanvasElementFirst: "请先在画布上选择一个元素",
11152
+ saveFailed: "无法保存着色器",
11153
+ categories: {
11154
+ gradientFlow: "渐变流动",
11155
+ waves: "波浪",
11156
+ noise: "噪点",
11157
+ pattern: "图案",
11158
+ texture: "纹理",
11159
+ retro: "复古",
11160
+ },
11161
+ },
11162
+ },
11163
+ },
11164
+ "es-ES": {
11165
+ editPanel: {
11166
+ labels: {
11167
+ rotation3d: "Rotación 3D",
11168
+ rotationX: "Rotar X",
11169
+ rotationY: "Rotar Y",
11170
+ perspective: "Perspectiva",
11171
+ perspectiveHint: "Perspectiva (vacío/0 = ninguna)",
11172
+ customTransform:
11173
+ "Transformación personalizada — no se puede editar como rotación X/Y/Z",
11174
+ shaderEffectType: "Shader",
11175
+ },
11176
+ shaders: {
11177
+ fillsTitle: "Rellenos de shader",
11178
+ effectsTitle: "Efectos de shader",
11179
+ createdByYou: "Creados por ti",
11180
+ presets: "Preajustes",
11181
+ createNew: "Crear nuevo",
11182
+ ai: "IA",
11183
+ savedInThisDesign: "Guardado en este diseño",
11184
+ noMatches: "Ningún shader coincide con tu búsqueda",
11185
+ backToBrowser: "Volver al explorador de shaders",
11186
+ closePanel: "Cerrar panel de shader",
11187
+ editCode: "Editar código GLSL",
11188
+ removeShader: "Quitar shader",
11189
+ removeShaderEffect: "Quitar efecto de shader",
11190
+ noUniforms: "Este shader no tiene parámetros ajustables",
11191
+ codeHint:
11192
+ "El código fuente GLSL está guardado en el HTML de esta pantalla — abre el panel de código para editarlo.",
11193
+ selectElementFirst: "Selecciona primero un elemento de pantalla",
11194
+ selectCanvasElementFirst: "Selecciona primero un elemento en el lienzo",
11195
+ saveFailed: "No se pudo guardar el shader",
11196
+ categories: {
11197
+ gradientFlow: "Flujo de gradiente",
11198
+ waves: "Ondas",
11199
+ noise: "Ruido",
11200
+ pattern: "Patrones",
11201
+ texture: "Textura",
11202
+ retro: "Retro",
11203
+ },
11204
+ },
11205
+ },
11206
+ },
11207
+ "fr-FR": {
11208
+ editPanel: {
11209
+ labels: {
11210
+ rotation3d: "Rotation 3D",
11211
+ rotationX: "Rotation X",
11212
+ rotationY: "Rotation Y",
11213
+ perspective: "Perspective",
11214
+ perspectiveHint: "Perspective (vide/0 = aucune)",
11215
+ customTransform:
11216
+ "Transformation personnalisée — ne peut pas être modifiée comme rotation X/Y/Z",
11217
+ shaderEffectType: "Shader",
11218
+ },
11219
+ shaders: {
11220
+ fillsTitle: "Remplissages shader",
11221
+ effectsTitle: "Effets shader",
11222
+ createdByYou: "Créés par vous",
11223
+ presets: "Préréglages",
11224
+ createNew: "Créer",
11225
+ ai: "IA",
11226
+ savedInThisDesign: "Enregistré dans ce design",
11227
+ noMatches: "Aucun shader ne correspond à votre recherche",
11228
+ backToBrowser: "Retour à la liste des shaders",
11229
+ closePanel: "Fermer le panneau shader",
11230
+ editCode: "Modifier le code GLSL",
11231
+ removeShader: "Supprimer le shader",
11232
+ removeShaderEffect: "Supprimer l'effet shader",
11233
+ noUniforms: "Ce shader n'a aucun paramètre réglable",
11234
+ codeHint:
11235
+ "Le code source GLSL est enregistré dans le HTML de cet écran — ouvrez le panneau Code pour le modifier.",
11236
+ selectElementFirst: "Sélectionnez d'abord un élément d'écran",
11237
+ selectCanvasElementFirst:
11238
+ "Sélectionnez d'abord un élément sur le canevas",
11239
+ saveFailed: "Impossible d'enregistrer le shader",
11240
+ categories: {
11241
+ gradientFlow: "Flux de dégradé",
11242
+ waves: "Vagues",
11243
+ noise: "Bruit",
11244
+ pattern: "Motifs",
11245
+ texture: "Texture",
11246
+ retro: "Rétro",
11247
+ },
11248
+ },
11249
+ },
11250
+ },
11251
+ "de-DE": {
11252
+ editPanel: {
11253
+ labels: {
11254
+ rotation3d: "3D-Rotation",
11255
+ rotationX: "X-Rotation",
11256
+ rotationY: "Y-Rotation",
11257
+ perspective: "Perspektive",
11258
+ perspectiveHint: "Perspektive (leer/0 = keine)",
11259
+ customTransform:
11260
+ "Benutzerdefinierte Transformation — kann nicht als X/Y/Z-Rotation bearbeitet werden",
11261
+ shaderEffectType: "Shader",
11262
+ },
11263
+ shaders: {
11264
+ fillsTitle: "Shader-Füllungen",
11265
+ effectsTitle: "Shader-Effekte",
11266
+ createdByYou: "Von dir erstellt",
11267
+ presets: "Voreinstellungen",
11268
+ createNew: "Neu erstellen",
11269
+ ai: "KI",
11270
+ savedInThisDesign: "In diesem Design gespeichert",
11271
+ noMatches: "Keine Shader entsprechen deiner Suche",
11272
+ backToBrowser: "Zurück zur Shader-Übersicht",
11273
+ closePanel: "Shader-Panel schließen",
11274
+ editCode: "GLSL-Code bearbeiten",
11275
+ removeShader: "Shader entfernen",
11276
+ removeShaderEffect: "Shader-Effekt entfernen",
11277
+ noUniforms: "Dieser Shader hat keine einstellbaren Parameter",
11278
+ codeHint:
11279
+ "Der GLSL-Quellcode ist im HTML dieses Bildschirms gespeichert — öffne das Code-Panel, um ihn zu bearbeiten.",
11280
+ selectElementFirst: "Wähle zuerst ein Bildschirmelement aus",
11281
+ selectCanvasElementFirst:
11282
+ "Wähle zuerst ein Element auf der Leinwand aus",
11283
+ saveFailed: "Shader konnte nicht gespeichert werden",
11284
+ categories: {
11285
+ gradientFlow: "Verlaufsfluss",
11286
+ waves: "Wellen",
11287
+ noise: "Rauschen",
11288
+ pattern: "Muster",
11289
+ texture: "Textur",
11290
+ retro: "Retro",
11291
+ },
11292
+ },
11293
+ },
11294
+ },
11295
+ "ja-JP": {
11296
+ editPanel: {
11297
+ labels: {
11298
+ rotation3d: "3D 回転",
11299
+ rotationX: "X 軸回転",
11300
+ rotationY: "Y 軸回転",
11301
+ perspective: "パースペクティブ",
11302
+ perspectiveHint: "パースペクティブ(空/0 = なし)",
11303
+ customTransform: "カスタム変換 — X/Y/Z 回転として編集できません",
11304
+ shaderEffectType: "シェーダー",
11305
+ },
11306
+ shaders: {
11307
+ fillsTitle: "シェーダーフィル",
11308
+ effectsTitle: "シェーダーエフェクト",
11309
+ createdByYou: "自分が作成",
11310
+ presets: "プリセット",
11311
+ createNew: "新規作成",
11312
+ ai: "AI",
11313
+ savedInThisDesign: "このデザインに保存済み",
11314
+ noMatches: "検索に一致するシェーダーがありません",
11315
+ backToBrowser: "シェーダー一覧に戻る",
11316
+ closePanel: "シェーダーパネルを閉じる",
11317
+ editCode: "GLSL コードを編集",
11318
+ removeShader: "シェーダーを削除",
11319
+ removeShaderEffect: "シェーダーエフェクトを削除",
11320
+ noUniforms: "このシェーダーには調整可能なパラメーターがありません",
11321
+ codeHint:
11322
+ "GLSL のソースはこの画面の HTML に保存されています — コードパネルを開いて編集してください。",
11323
+ selectElementFirst: "まず画面上の要素を選択してください",
11324
+ selectCanvasElementFirst: "まずキャンバス上の要素を選択してください",
11325
+ saveFailed: "シェーダーを保存できませんでした",
11326
+ categories: {
11327
+ gradientFlow: "グラデーションフロー",
11328
+ waves: "波",
11329
+ noise: "ノイズ",
11330
+ pattern: "パターン",
11331
+ texture: "テクスチャ",
11332
+ retro: "レトロ",
11333
+ },
11334
+ },
11335
+ },
11336
+ },
11337
+ "ko-KR": {
11338
+ editPanel: {
11339
+ labels: {
11340
+ rotation3d: "3D 회전",
11341
+ rotationX: "X 회전",
11342
+ rotationY: "Y 회전",
11343
+ perspective: "원근감",
11344
+ perspectiveHint: "원근감 (비어 있음/0 = 없음)",
11345
+ customTransform: "사용자 지정 변환 — X/Y/Z 회전으로 편집할 수 없음",
11346
+ shaderEffectType: "셰이더",
11347
+ },
11348
+ shaders: {
11349
+ fillsTitle: "셰이더 채우기",
11350
+ effectsTitle: "셰이더 효과",
11351
+ createdByYou: "내가 만든 항목",
11352
+ presets: "프리셋",
11353
+ createNew: "새로 만들기",
11354
+ ai: "AI",
11355
+ savedInThisDesign: "이 디자인에 저장됨",
11356
+ noMatches: "검색과 일치하는 셰이더가 없습니다",
11357
+ backToBrowser: "셰이더 찾아보기로 돌아가기",
11358
+ closePanel: "셰이더 패널 닫기",
11359
+ editCode: "GLSL 코드 편집",
11360
+ removeShader: "셰이더 제거",
11361
+ removeShaderEffect: "셰이더 효과 제거",
11362
+ noUniforms: "이 셰이더에는 조정 가능한 유니폼이 없습니다",
11363
+ codeHint:
11364
+ "GLSL 소스는 이 화면의 HTML에 저장되어 있습니다 — 코드 패널을 열어 편집하세요.",
11365
+ selectElementFirst: "먼저 화면 요소를 선택하세요",
11366
+ selectCanvasElementFirst: "먼저 캔버스에서 요소를 선택하세요",
11367
+ saveFailed: "셰이더를 저장할 수 없습니다",
11368
+ categories: {
11369
+ gradientFlow: "그라디언트 플로우",
11370
+ waves: "웨이브",
11371
+ noise: "노이즈",
11372
+ pattern: "패턴",
11373
+ texture: "텍스처",
11374
+ retro: "레트로",
11375
+ },
11376
+ },
11377
+ },
11378
+ },
11379
+ "pt-BR": {
11380
+ editPanel: {
11381
+ labels: {
11382
+ rotation3d: "Rotação 3D",
11383
+ rotationX: "Girar X",
11384
+ rotationY: "Girar Y",
11385
+ perspective: "Perspectiva",
11386
+ perspectiveHint: "Perspectiva (vazio/0 = nenhuma)",
11387
+ customTransform:
11388
+ "Transformação personalizada — não pode ser editada como rotação X/Y/Z",
11389
+ shaderEffectType: "Shader",
11390
+ },
11391
+ shaders: {
11392
+ fillsTitle: "Preenchimentos de shader",
11393
+ effectsTitle: "Efeitos de shader",
11394
+ createdByYou: "Criados por você",
11395
+ presets: "Predefinições",
11396
+ createNew: "Criar novo",
11397
+ ai: "IA",
11398
+ savedInThisDesign: "Salvo neste design",
11399
+ noMatches: "Nenhum shader corresponde à sua busca",
11400
+ backToBrowser: "Voltar à lista de shaders",
11401
+ closePanel: "Fechar painel de shader",
11402
+ editCode: "Editar código GLSL",
11403
+ removeShader: "Remover shader",
11404
+ removeShaderEffect: "Remover efeito de shader",
11405
+ noUniforms: "Este shader não tem parâmetros ajustáveis",
11406
+ codeHint:
11407
+ "O código-fonte GLSL está salvo no HTML desta tela — abra o painel de código para editá-lo.",
11408
+ selectElementFirst: "Selecione primeiro um elemento da tela",
11409
+ selectCanvasElementFirst: "Selecione primeiro um elemento no canvas",
11410
+ saveFailed: "Não foi possível salvar o shader",
11411
+ categories: {
11412
+ gradientFlow: "Fluxo de gradiente",
11413
+ waves: "Ondas",
11414
+ noise: "Ruído",
11415
+ pattern: "Padrões",
11416
+ texture: "Textura",
11417
+ retro: "Retrô",
11418
+ },
11419
+ },
11420
+ },
11421
+ },
11422
+ "hi-IN": {
11423
+ editPanel: {
11424
+ labels: {
11425
+ rotation3d: "3D रोटेशन",
11426
+ rotationX: "X घुमाएं",
11427
+ rotationY: "Y घुमाएं",
11428
+ perspective: "पर्सपेक्टिव",
11429
+ perspectiveHint: "पर्सपेक्टिव (खाली/0 = कोई नहीं)",
11430
+ customTransform:
11431
+ "कस्टम ट्रांसफ़ॉर्म — इसे X/Y/Z रोटेशन के रूप में संपादित नहीं किया जा सकता",
11432
+ shaderEffectType: "शेडर",
11433
+ },
11434
+ shaders: {
11435
+ fillsTitle: "शेडर फ़िल",
11436
+ effectsTitle: "शेडर प्रभाव",
11437
+ createdByYou: "आपके द्वारा बनाए गए",
11438
+ presets: "प्रीसेट",
11439
+ createNew: "नया बनाएं",
11440
+ ai: "AI",
11441
+ savedInThisDesign: "इस डिज़ाइन में सहेजा गया",
11442
+ noMatches: "आपकी खोज से कोई शेडर मेल नहीं खाता",
11443
+ backToBrowser: "शेडर ब्राउज़र पर वापस जाएं",
11444
+ closePanel: "शेडर पैनल बंद करें",
11445
+ editCode: "GLSL कोड संपादित करें",
11446
+ removeShader: "शेडर हटाएं",
11447
+ removeShaderEffect: "शेडर प्रभाव हटाएं",
11448
+ noUniforms: "इस शेडर में कोई समायोज्य यूनिफ़ॉर्म नहीं है",
11449
+ codeHint:
11450
+ "GLSL स्रोत इस स्क्रीन के HTML में सहेजा गया है — इसे संपादित करने के लिए कोड पैनल खोलें।",
11451
+ selectElementFirst: "पहले एक स्क्रीन तत्व चुनें",
11452
+ selectCanvasElementFirst: "पहले कैनवास पर एक तत्व चुनें",
11453
+ saveFailed: "शेडर सहेजा नहीं जा सका",
11454
+ categories: {
11455
+ gradientFlow: "ग्रेडिएंट फ़्लो",
11456
+ waves: "वेव्स",
11457
+ noise: "नॉइज़",
11458
+ pattern: "पैटर्न",
11459
+ texture: "टेक्सचर",
11460
+ retro: "रेट्रो",
11461
+ },
11462
+ },
11463
+ },
11464
+ },
11465
+ "ar-SA": {
11466
+ editPanel: {
11467
+ labels: {
11468
+ rotation3d: "دوران ثلاثي الأبعاد",
11469
+ rotationX: "دوران X",
11470
+ rotationY: "دوران Y",
11471
+ perspective: "المنظور",
11472
+ perspectiveHint: "المنظور (فارغ/0 = بلا)",
11473
+ customTransform: "تحويل مخصص — لا يمكن تعديله كدوران X/Y/Z",
11474
+ shaderEffectType: "التظليل",
11475
+ },
11476
+ shaders: {
11477
+ fillsTitle: "تعبئات التظليل",
11478
+ effectsTitle: "تأثيرات التظليل",
11479
+ createdByYou: "من إنشائك",
11480
+ presets: "الإعدادات المسبقة",
11481
+ createNew: "إنشاء جديد",
11482
+ ai: "AI",
11483
+ savedInThisDesign: "محفوظ في هذا التصميم",
11484
+ noMatches: "لا توجد تظليلات مطابقة لبحثك",
11485
+ backToBrowser: "العودة إلى تصفح التظليل",
11486
+ closePanel: "إغلاق لوحة التظليل",
11487
+ editCode: "تحرير كود GLSL",
11488
+ removeShader: "إزالة التظليل",
11489
+ removeShaderEffect: "إزالة تأثير التظليل",
11490
+ noUniforms: "لا توجد معلمات قابلة للتعديل لهذا التظليل",
11491
+ codeHint:
11492
+ "مصدر GLSL محفوظ في HTML الخاص بهذه الشاشة — افتح لوحة الكود لتعديله.",
11493
+ selectElementFirst: "الرجاء تحديد عنصر شاشة أولاً",
11494
+ selectCanvasElementFirst: "الرجاء تحديد عنصر على اللوحة أولاً",
11495
+ saveFailed: "تعذر حفظ التظليل",
11496
+ categories: {
11497
+ gradientFlow: "تدفق متدرج",
11498
+ waves: "موجات",
11499
+ noise: "تشويش",
11500
+ pattern: "أنماط",
11501
+ texture: "ملمس",
11502
+ retro: "كلاسيكي",
11503
+ },
11504
+ },
11505
+ },
11506
+ },
11507
+ } satisfies Record<Exclude<LocaleCode, "en-US" | "zh-TW">, PartialMessages>;
11508
+
11509
+ // Element interaction-state inspector (Default / Hover / Focus /
11510
+ // Focus-visible / Pressed / Disabled selector, the "Editing <State> state"
11511
+ // indicator, and the per-property override reset affordance). zh-TW's
11512
+ // translations live directly in app/i18n/zh-TW.ts instead, following this
11513
+ // file's existing zh-TW convention.
11514
+ const designInteractionStatesOverrides = {
11515
+ "zh-CN": {
11516
+ editPanel: {
11517
+ interactionStates: {
11518
+ default: "默认",
11519
+ hover: "悬停",
11520
+ focus: "聚焦",
11521
+ focusVisible: "聚焦可见",
11522
+ active: "按下",
11523
+ disabled: "禁用",
11524
+ selectorLabel: "交互状态",
11525
+ selectorTooltip: "预览并编辑悬停、聚焦和按下状态",
11526
+ editingState: "正在编辑{{state}}状态",
11527
+ editingStateTooltip:
11528
+ "正在编辑{{state}}状态 — 这里的样式仅在元素处于{{state}}时生效",
11529
+ hasOverrideIndicator: "此属性在该状态下已被覆盖",
11530
+ reset: "重置",
11531
+ resetOverride: "重置覆盖项",
11532
+ resetOverrideTooltip: "清除此状态的覆盖项,使用默认值",
11533
+ },
11534
+ },
11535
+ },
11536
+ "es-ES": {
11537
+ editPanel: {
11538
+ interactionStates: {
11539
+ default: "Predeterminado",
11540
+ hover: "Hover",
11541
+ focus: "Foco",
11542
+ focusVisible: "Foco visible",
11543
+ active: "Presionado",
11544
+ disabled: "Deshabilitado",
11545
+ selectorLabel: "Estado de interacción",
11546
+ selectorTooltip:
11547
+ "Previsualiza y edita los estados hover, foco y presionado",
11548
+ editingState: "Editando el estado {{state}}",
11549
+ editingStateTooltip:
11550
+ "Editando el estado {{state}} — estos estilos solo se aplican cuando el elemento está en {{state}}",
11551
+ hasOverrideIndicator: "Esta propiedad está sobrescrita en este estado",
11552
+ reset: "Restablecer",
11553
+ resetOverride: "Restablecer sobrescritura",
11554
+ resetOverrideTooltip:
11555
+ "Borra la sobrescritura de este estado y usa el valor predeterminado",
11556
+ },
11557
+ },
11558
+ },
11559
+ "fr-FR": {
11560
+ editPanel: {
11561
+ interactionStates: {
11562
+ default: "Par défaut",
11563
+ hover: "Survol",
11564
+ focus: "Focus",
11565
+ focusVisible: "Focus clavier",
11566
+ active: "Pressé",
11567
+ disabled: "Désactivé",
11568
+ selectorLabel: "État d'interaction",
11569
+ selectorTooltip:
11570
+ "Prévisualiser et modifier les états survol, focus et pressé",
11571
+ editingState: "Modification de l'état {{state}}",
11572
+ editingStateTooltip:
11573
+ "Modification de l'état {{state}} — ces styles s'appliquent uniquement quand l'élément est en état {{state}}",
11574
+ hasOverrideIndicator: "Cette propriété est remplacée dans cet état",
11575
+ reset: "Réinitialiser",
11576
+ resetOverride: "Réinitialiser la substitution",
11577
+ resetOverrideTooltip:
11578
+ "Efface la substitution de cet état et utilise la valeur par défaut",
11579
+ },
11580
+ },
11581
+ },
11582
+ "de-DE": {
11583
+ editPanel: {
11584
+ interactionStates: {
11585
+ default: "Standard",
11586
+ hover: "Hover",
11587
+ focus: "Fokus",
11588
+ focusVisible: "Fokus sichtbar",
11589
+ active: "Gedrückt",
11590
+ disabled: "Deaktiviert",
11591
+ selectorLabel: "Interaktionszustand",
11592
+ selectorTooltip:
11593
+ "Hover-, Fokus- und Gedrückt-Zustände in der Vorschau anzeigen und bearbeiten",
11594
+ editingState: "Bearbeite Zustand {{state}}",
11595
+ editingStateTooltip:
11596
+ "Bearbeitung des Zustands {{state}} — diese Stile gelten nur, wenn das Element {{state}} ist",
11597
+ hasOverrideIndicator:
11598
+ "Diese Eigenschaft ist in diesem Zustand überschrieben",
11599
+ reset: "Zurücksetzen",
11600
+ resetOverride: "Überschreibung zurücksetzen",
11601
+ resetOverrideTooltip:
11602
+ "Überschreibung dieses Zustands löschen und Standardwert verwenden",
11603
+ },
11604
+ },
11605
+ },
11606
+ "ja-JP": {
11607
+ editPanel: {
11608
+ interactionStates: {
11609
+ default: "デフォルト",
11610
+ hover: "ホバー",
11611
+ focus: "フォーカス",
11612
+ focusVisible: "フォーカス表示",
11613
+ active: "押下時",
11614
+ disabled: "無効",
11615
+ selectorLabel: "インタラクション状態",
11616
+ selectorTooltip: "ホバー、フォーカス、押下状態をプレビューして編集",
11617
+ editingState: "{{state}}状態を編集中",
11618
+ editingStateTooltip:
11619
+ "{{state}}状態を編集中 — ここでのスタイルは要素が{{state}}のときのみ適用されます",
11620
+ hasOverrideIndicator: "このプロパティはこの状態で上書きされています",
11621
+ reset: "リセット",
11622
+ resetOverride: "上書きをリセット",
11623
+ resetOverrideTooltip:
11624
+ "この状態の上書きを消去してデフォルト値を使用します",
11625
+ },
11626
+ },
11627
+ },
11628
+ "ko-KR": {
11629
+ editPanel: {
11630
+ interactionStates: {
11631
+ default: "기본값",
11632
+ hover: "호버",
11633
+ focus: "포커스",
11634
+ focusVisible: "포커스 표시",
11635
+ active: "눌림",
11636
+ disabled: "비활성화",
11637
+ selectorLabel: "상호작용 상태",
11638
+ selectorTooltip: "호버, 포커스, 눌림 상태를 미리보고 편집하세요",
11639
+ editingState: "{{state}} 상태 편집 중",
11640
+ editingStateTooltip:
11641
+ "{{state}} 상태 편집 중 — 여기의 스타일은 요소가 {{state}} 상태일 때만 적용됩니다",
11642
+ hasOverrideIndicator: "이 속성은 이 상태에서 재정의되었습니다",
11643
+ reset: "재설정",
11644
+ resetOverride: "재정의 초기화",
11645
+ resetOverrideTooltip: "이 상태의 재정의를 지우고 기본값을 사용합니다",
11646
+ },
11647
+ },
11648
+ },
11649
+ "pt-BR": {
11650
+ editPanel: {
11651
+ interactionStates: {
11652
+ default: "Padrão",
11653
+ hover: "Hover",
11654
+ focus: "Foco",
11655
+ focusVisible: "Foco visível",
11656
+ active: "Pressionado",
11657
+ disabled: "Desabilitado",
11658
+ selectorLabel: "Estado de interação",
11659
+ selectorTooltip:
11660
+ "Visualize e edite os estados de hover, foco e pressionado",
11661
+ editingState: "Editando o estado {{state}}",
11662
+ editingStateTooltip:
11663
+ "Editando o estado {{state}} — esses estilos se aplicam somente quando o elemento está em {{state}}",
11664
+ hasOverrideIndicator: "Esta propriedade está sobrescrita neste estado",
11665
+ reset: "Redefinir",
11666
+ resetOverride: "Redefinir substituição",
11667
+ resetOverrideTooltip:
11668
+ "Limpa a substituição deste estado e usa o valor padrão",
11669
+ },
11670
+ },
11671
+ },
11672
+ "hi-IN": {
11673
+ editPanel: {
11674
+ interactionStates: {
11675
+ default: "डिफ़ॉल्ट",
11676
+ hover: "होवर",
11677
+ focus: "फ़ोकस",
11678
+ focusVisible: "फ़ोकस विज़िबल",
11679
+ active: "प्रेस्ड",
11680
+ disabled: "डिसेबल्ड",
11681
+ selectorLabel: "इंटरैक्शन स्थिति",
11682
+ selectorTooltip: "होवर, फ़ोकस और प्रेस्ड स्थितियों को प्रीव्यू और एडिट करें",
11683
+ editingState: "{{state}} स्थिति संपादित की जा रही है",
11684
+ editingStateTooltip:
11685
+ "{{state}} स्थिति संपादित की जा रही है — यहाँ की styles केवल तब लागू होती हैं जब element {{state}} हो",
11686
+ hasOverrideIndicator: "यह property इस स्थिति में override की गई है",
11687
+ reset: "रीसेट करें",
11688
+ resetOverride: "ओवरराइड रीसेट करें",
11689
+ resetOverrideTooltip:
11690
+ "इस स्थिति का override हटाएं और डिफ़ॉल्ट मान उपयोग करें",
11691
+ },
11692
+ },
11693
+ },
11694
+ "ar-SA": {
11695
+ editPanel: {
11696
+ interactionStates: {
11697
+ default: "افتراضي",
11698
+ hover: "تحويم",
11699
+ focus: "تركيز",
11700
+ focusVisible: "تركيز مرئي",
11701
+ active: "مضغوط",
11702
+ disabled: "معطّل",
11703
+ selectorLabel: "حالة التفاعل",
11704
+ selectorTooltip: "معاينة وتعديل حالات التحويم والتركيز والضغط",
11705
+ editingState: "تعديل حالة {{state}}",
11706
+ editingStateTooltip:
11707
+ "تعديل حالة {{state}} — تنطبق هذه الأنماط فقط عندما يكون العنصر في حالة {{state}}",
11708
+ hasOverrideIndicator: "تم تجاوز هذه الخاصية في هذه الحالة",
11709
+ reset: "إعادة تعيين",
11710
+ resetOverride: "إعادة تعيين التجاوز",
11711
+ resetOverrideTooltip: "امسح تجاوز هذه الحالة واستخدم القيمة الافتراضية",
11712
+ },
11713
+ },
11714
+ },
11715
+ } satisfies Record<Exclude<LocaleCode, "en-US" | "zh-TW">, PartialMessages>;
11716
+
11717
+ // Motion keyframe diamond affordance (per-field ◆ toggle next to
11718
+ // keyframeable properties), the breakpoint override indicator/reset
11719
+ // affordance, and the BreakpointBar's own labels (base chip, add-breakpoint
11720
+ // popover, Desktop/Tablet/Phone presets). zh-TW's translations live
11721
+ // directly in app/i18n/zh-TW.ts instead, following this file's existing
11722
+ // zh-TW convention. BreakpointBar.tsx itself is owned by the breakpoints
11723
+ // build — these keys unblock its existing humanized-fallback strings.
11724
+ const designMotionAndBreakpointOverrides = {
11725
+ "zh-CN": {
11726
+ editPanel: {
11727
+ motionKeyframe: {
11728
+ addTooltip: "添加关键帧",
11729
+ removeTooltip: "移除关键帧",
11730
+ },
11731
+ breakpointOverride: {
11732
+ overriddenTooltip: "已在此断点被覆盖",
11733
+ overriddenAtTooltip: "已在 {{width}}px 处被覆盖",
11734
+ reset: "重置覆盖项",
11735
+ resetShort: "重置",
11736
+ resetTooltip: "清除此断点的覆盖项并使用基础值",
11737
+ },
11738
+ },
11739
+ designEditor: {
11740
+ breakpointBar: {
11741
+ base: "基础",
11742
+ editBaseWidth: "编辑基础宽度",
11743
+ addBreakpoint: "添加断点",
11744
+ remove: "移除断点",
11745
+ options: "断点选项",
11746
+ changeWidth: "更改宽度",
11747
+ customWidth: "自定义宽度",
11748
+ add: "添加",
11749
+ showAllBreakpoints: "显示所有断点",
11750
+ desktop: "桌面端",
11751
+ tablet: "平板",
11752
+ phone: "手机",
11753
+ },
11754
+ },
11755
+ },
11756
+ "es-ES": {
11757
+ editPanel: {
11758
+ motionKeyframe: {
11759
+ addTooltip: "Añadir fotograma clave",
11760
+ removeTooltip: "Quitar fotograma clave",
11761
+ },
11762
+ breakpointOverride: {
11763
+ overriddenTooltip: "Sobrescrito en este punto de quiebre",
11764
+ overriddenAtTooltip: "Sobrescrito a {{width}}px",
11765
+ reset: "Restablecer sobrescritura",
11766
+ resetShort: "Restablecer",
11767
+ resetTooltip:
11768
+ "Borra la sobrescritura de este punto de quiebre y usa el valor base",
11769
+ },
11770
+ },
11771
+ designEditor: {
11772
+ breakpointBar: {
11773
+ base: "Base",
11774
+ editBaseWidth: "Editar ancho base",
11775
+ addBreakpoint: "Añadir punto de quiebre",
11776
+ remove: "Quitar punto de quiebre",
11777
+ options: "Opciones del punto de quiebre",
11778
+ changeWidth: "Cambiar ancho",
11779
+ customWidth: "Ancho personalizado",
11780
+ add: "Añadir",
11781
+ showAllBreakpoints: "Mostrar todos los puntos de quiebre",
11782
+ desktop: "Escritorio",
11783
+ tablet: "Tableta",
11784
+ phone: "Móvil",
11785
+ },
11786
+ },
11787
+ },
11788
+ "fr-FR": {
11789
+ editPanel: {
11790
+ motionKeyframe: {
11791
+ addTooltip: "Ajouter une image clé",
11792
+ removeTooltip: "Supprimer l'image clé",
11793
+ },
11794
+ breakpointOverride: {
11795
+ overriddenTooltip: "Remplacé à ce point de rupture",
11796
+ overriddenAtTooltip: "Remplacé à {{width}}px",
11797
+ reset: "Réinitialiser la substitution",
11798
+ resetShort: "Réinitialiser",
11799
+ resetTooltip:
11800
+ "Efface la substitution de ce point de rupture et utilise la valeur de base",
11801
+ },
11802
+ },
11803
+ designEditor: {
11804
+ breakpointBar: {
11805
+ base: "Base",
11806
+ editBaseWidth: "Modifier la largeur de base",
11807
+ addBreakpoint: "Ajouter un point de rupture",
11808
+ remove: "Supprimer le point de rupture",
11809
+ options: "Options du point de rupture",
11810
+ changeWidth: "Modifier la largeur",
11811
+ customWidth: "Largeur personnalisée",
11812
+ add: "Ajouter",
11813
+ showAllBreakpoints: "Afficher tous les points de rupture",
11814
+ desktop: "Ordinateur",
11815
+ tablet: "Tablette",
11816
+ phone: "Mobile",
11817
+ },
11818
+ },
11819
+ },
11820
+ "de-DE": {
11821
+ editPanel: {
11822
+ motionKeyframe: {
11823
+ addTooltip: "Keyframe hinzufügen",
11824
+ removeTooltip: "Keyframe entfernen",
11825
+ },
11826
+ breakpointOverride: {
11827
+ overriddenTooltip: "Bei diesem Breakpoint überschrieben",
11828
+ overriddenAtTooltip: "Bei {{width}}px überschrieben",
11829
+ reset: "Überschreibung zurücksetzen",
11830
+ resetShort: "Zurücksetzen",
11831
+ resetTooltip:
11832
+ "Überschreibung dieses Breakpoints löschen und Basiswert verwenden",
11833
+ },
11834
+ },
11835
+ designEditor: {
11836
+ breakpointBar: {
11837
+ base: "Basis",
11838
+ editBaseWidth: "Basisbreite bearbeiten",
11839
+ addBreakpoint: "Breakpoint hinzufügen",
11840
+ remove: "Breakpoint entfernen",
11841
+ options: "Breakpoint-Optionen",
11842
+ changeWidth: "Breite ändern",
11843
+ customWidth: "Benutzerdefinierte Breite",
11844
+ add: "Hinzufügen",
11845
+ showAllBreakpoints: "Alle Breakpoints anzeigen",
11846
+ desktop: "Desktop",
11847
+ tablet: "Tablet",
11848
+ phone: "Smartphone",
11849
+ },
11850
+ },
11851
+ },
11852
+ "ja-JP": {
11853
+ editPanel: {
11854
+ motionKeyframe: {
11855
+ addTooltip: "キーフレームを追加",
11856
+ removeTooltip: "キーフレームを削除",
11857
+ },
11858
+ breakpointOverride: {
11859
+ overriddenTooltip: "このブレークポイントで上書きされています",
11860
+ overriddenAtTooltip: "{{width}}px で上書きされています",
11861
+ reset: "上書きをリセット",
11862
+ resetShort: "リセット",
11863
+ resetTooltip:
11864
+ "このブレークポイントの上書きを消去してベース値を使用します",
11865
+ },
11866
+ },
11867
+ designEditor: {
11868
+ breakpointBar: {
11869
+ base: "ベース",
11870
+ editBaseWidth: "ベース幅を編集",
11871
+ addBreakpoint: "ブレークポイントを追加",
11872
+ remove: "ブレークポイントを削除",
11873
+ options: "ブレークポイントのオプション",
11874
+ changeWidth: "幅を変更",
11875
+ customWidth: "カスタム幅",
11876
+ add: "追加",
11877
+ showAllBreakpoints: "すべてのブレークポイントを表示",
11878
+ desktop: "デスクトップ",
11879
+ tablet: "タブレット",
11880
+ phone: "スマートフォン",
11881
+ },
11882
+ },
11883
+ },
11884
+ "ko-KR": {
11885
+ editPanel: {
11886
+ motionKeyframe: {
11887
+ addTooltip: "키프레임 추가",
11888
+ removeTooltip: "키프레임 제거",
11889
+ },
11890
+ breakpointOverride: {
11891
+ overriddenTooltip: "이 브레이크포인트에서 재정의됨",
11892
+ overriddenAtTooltip: "{{width}}px에서 재정의됨",
11893
+ reset: "재정의 초기화",
11894
+ resetShort: "재설정",
11895
+ resetTooltip: "이 브레이크포인트의 재정의를 지우고 기본값을 사용합니다",
11896
+ },
11897
+ },
11898
+ designEditor: {
11899
+ breakpointBar: {
11900
+ base: "기본",
11901
+ editBaseWidth: "기본 너비 편집",
11902
+ addBreakpoint: "브레이크포인트 추가",
11903
+ remove: "브레이크포인트 제거",
11904
+ options: "브레이크포인트 옵션",
11905
+ changeWidth: "너비 변경",
11906
+ customWidth: "사용자 지정 너비",
11907
+ add: "추가",
11908
+ showAllBreakpoints: "모든 브레이크포인트 표시",
11909
+ desktop: "데스크톱",
11910
+ tablet: "태블릿",
11911
+ phone: "휴대폰",
11912
+ },
11913
+ },
11914
+ },
11915
+ "pt-BR": {
11916
+ editPanel: {
11917
+ motionKeyframe: {
11918
+ addTooltip: "Adicionar quadro-chave",
11919
+ removeTooltip: "Remover quadro-chave",
11920
+ },
11921
+ breakpointOverride: {
11922
+ overriddenTooltip: "Sobrescrito neste breakpoint",
11923
+ overriddenAtTooltip: "Sobrescrito em {{width}}px",
11924
+ reset: "Redefinir substituição",
11925
+ resetShort: "Redefinir",
11926
+ resetTooltip:
11927
+ "Limpa a substituição deste breakpoint e usa o valor base",
11928
+ },
11929
+ },
11930
+ designEditor: {
11931
+ breakpointBar: {
11932
+ base: "Base",
11933
+ editBaseWidth: "Editar largura base",
11934
+ addBreakpoint: "Adicionar breakpoint",
11935
+ remove: "Remover breakpoint",
11936
+ options: "Opções do breakpoint",
11937
+ changeWidth: "Alterar largura",
11938
+ customWidth: "Largura personalizada",
11939
+ add: "Adicionar",
11940
+ showAllBreakpoints: "Mostrar todos os breakpoints",
11941
+ desktop: "Desktop",
11942
+ tablet: "Tablet",
11943
+ phone: "Celular",
11944
+ },
11945
+ },
11946
+ },
11947
+ "hi-IN": {
11948
+ editPanel: {
11949
+ motionKeyframe: {
11950
+ addTooltip: "कीफ़्रेम जोड़ें",
11951
+ removeTooltip: "कीफ़्रेम हटाएं",
11952
+ },
11953
+ breakpointOverride: {
11954
+ overriddenTooltip: "इस ब्रेकपॉइंट पर override किया गया",
11955
+ overriddenAtTooltip: "{{width}}px पर override किया गया",
11956
+ reset: "ओवरराइड रीसेट करें",
11957
+ resetShort: "रीसेट करें",
11958
+ resetTooltip: "इस ब्रेकपॉइंट का override हटाएं और आधार मान उपयोग करें",
11959
+ },
11960
+ },
11961
+ designEditor: {
11962
+ breakpointBar: {
11963
+ base: "आधार",
11964
+ editBaseWidth: "आधार चौड़ाई संपादित करें",
11965
+ addBreakpoint: "ब्रेकपॉइंट जोड़ें",
11966
+ remove: "ब्रेकपॉइंट हटाएं",
11967
+ options: "ब्रेकपॉइंट विकल्प",
11968
+ changeWidth: "चौड़ाई बदलें",
11969
+ customWidth: "कस्टम चौड़ाई",
11970
+ add: "जोड़ें",
11971
+ showAllBreakpoints: "सभी ब्रेकपॉइंट दिखाएं",
11972
+ desktop: "डेस्कटॉप",
11973
+ tablet: "टैबलेट",
11974
+ phone: "फ़ोन",
11975
+ },
11976
+ },
11977
+ },
11978
+ "ar-SA": {
11979
+ editPanel: {
11980
+ motionKeyframe: {
11981
+ addTooltip: "إضافة إطار مفتاحي",
11982
+ removeTooltip: "إزالة الإطار المفتاحي",
11983
+ },
11984
+ breakpointOverride: {
11985
+ overriddenTooltip: "تم تجاوزه عند نقطة التوقف هذه",
11986
+ overriddenAtTooltip: "تم تجاوزه عند {{width}}px",
11987
+ reset: "إعادة تعيين التجاوز",
11988
+ resetShort: "إعادة تعيين",
11989
+ resetTooltip: "امسح تجاوز نقطة التوقف هذه واستخدم القيمة الأساسية",
11990
+ },
11991
+ },
11992
+ designEditor: {
11993
+ breakpointBar: {
11994
+ base: "أساسي",
11995
+ editBaseWidth: "تعديل العرض الأساسي",
11996
+ addBreakpoint: "إضافة نقطة توقف",
11997
+ remove: "إزالة نقطة التوقف",
11998
+ options: "خيارات نقطة التوقف",
11999
+ changeWidth: "تغيير العرض",
12000
+ customWidth: "عرض مخصص",
12001
+ add: "إضافة",
12002
+ showAllBreakpoints: "إظهار جميع نقاط التوقف",
12003
+ desktop: "سطح المكتب",
12004
+ tablet: "جهاز لوحي",
12005
+ phone: "هاتف",
12006
+ },
12007
+ },
12008
+ },
12009
+ } satisfies Record<Exclude<LocaleCode, "en-US" | "zh-TW">, PartialMessages>;
12010
+
10564
12011
  export const messagesByLocale = {
10565
12012
  "en-US": enUS,
10566
12013
  "zh-TW": mergeMessages(
@@ -10573,8 +12020,10 @@ export const messagesByLocale = {
10573
12020
  designShapeToolOverrides["zh-TW"],
10574
12021
  designPublicShareOverrides["zh-TW"],
10575
12022
  designVisualEditOverrides["zh-TW"],
10576
- designLocalSourceEditOverrides["zh-TW"],
10577
12023
  designPendingVisualStyleOverrides["zh-TW"],
12024
+ designFillStylesComingSoonOverrides["zh-TW"],
12025
+ breakpointBarOverrides["zh-TW"],
12026
+ motionDockOverrides["zh-TW"],
10578
12027
  ),
10579
12028
  ),
10580
12029
  "zh-CN": mergeMessages(
@@ -10590,8 +12039,15 @@ export const messagesByLocale = {
10590
12039
  designShapeToolOverrides["zh-CN"],
10591
12040
  designPublicShareOverrides["zh-CN"],
10592
12041
  designVisualEditOverrides["zh-CN"],
10593
- designLocalSourceEditOverrides["zh-CN"],
10594
12042
  designPendingVisualStyleOverrides["zh-CN"],
12043
+ designFillStylesComingSoonOverrides["zh-CN"],
12044
+ designFramePresetsOverrides["zh-CN"],
12045
+ designAlignmentOverrides["zh-CN"],
12046
+ designShaderAndRotationOverrides["zh-CN"],
12047
+ designInteractionStatesOverrides["zh-CN"],
12048
+ designMotionAndBreakpointOverrides["zh-CN"],
12049
+ breakpointBarOverrides["zh-CN"],
12050
+ motionDockOverrides["zh-CN"],
10595
12051
  {
10596
12052
  root: {
10597
12053
  commandActions: "操作",
@@ -10646,8 +12102,15 @@ export const messagesByLocale = {
10646
12102
  designShapeToolOverrides["es-ES"],
10647
12103
  designPublicShareOverrides["es-ES"],
10648
12104
  designVisualEditOverrides["es-ES"],
10649
- designLocalSourceEditOverrides["es-ES"],
10650
12105
  designPendingVisualStyleOverrides["es-ES"],
12106
+ designFillStylesComingSoonOverrides["es-ES"],
12107
+ designFramePresetsOverrides["es-ES"],
12108
+ designAlignmentOverrides["es-ES"],
12109
+ designShaderAndRotationOverrides["es-ES"],
12110
+ designInteractionStatesOverrides["es-ES"],
12111
+ designMotionAndBreakpointOverrides["es-ES"],
12112
+ breakpointBarOverrides["es-ES"],
12113
+ motionDockOverrides["es-ES"],
10651
12114
  {
10652
12115
  root: {
10653
12116
  commandActions: "Acciones",
@@ -10702,8 +12165,15 @@ export const messagesByLocale = {
10702
12165
  designShapeToolOverrides["fr-FR"],
10703
12166
  designPublicShareOverrides["fr-FR"],
10704
12167
  designVisualEditOverrides["fr-FR"],
10705
- designLocalSourceEditOverrides["fr-FR"],
10706
12168
  designPendingVisualStyleOverrides["fr-FR"],
12169
+ designFillStylesComingSoonOverrides["fr-FR"],
12170
+ designFramePresetsOverrides["fr-FR"],
12171
+ designAlignmentOverrides["fr-FR"],
12172
+ designShaderAndRotationOverrides["fr-FR"],
12173
+ designInteractionStatesOverrides["fr-FR"],
12174
+ designMotionAndBreakpointOverrides["fr-FR"],
12175
+ breakpointBarOverrides["fr-FR"],
12176
+ motionDockOverrides["fr-FR"],
10707
12177
  {
10708
12178
  root: {
10709
12179
  commandActions: "Actions",
@@ -10758,8 +12228,15 @@ export const messagesByLocale = {
10758
12228
  designShapeToolOverrides["de-DE"],
10759
12229
  designPublicShareOverrides["de-DE"],
10760
12230
  designVisualEditOverrides["de-DE"],
10761
- designLocalSourceEditOverrides["de-DE"],
10762
12231
  designPendingVisualStyleOverrides["de-DE"],
12232
+ designFillStylesComingSoonOverrides["de-DE"],
12233
+ designFramePresetsOverrides["de-DE"],
12234
+ designAlignmentOverrides["de-DE"],
12235
+ designShaderAndRotationOverrides["de-DE"],
12236
+ designInteractionStatesOverrides["de-DE"],
12237
+ designMotionAndBreakpointOverrides["de-DE"],
12238
+ breakpointBarOverrides["de-DE"],
12239
+ motionDockOverrides["de-DE"],
10763
12240
  {
10764
12241
  root: {
10765
12242
  commandActions: "Aktionen",
@@ -10814,8 +12291,15 @@ export const messagesByLocale = {
10814
12291
  designShapeToolOverrides["ja-JP"],
10815
12292
  designPublicShareOverrides["ja-JP"],
10816
12293
  designVisualEditOverrides["ja-JP"],
10817
- designLocalSourceEditOverrides["ja-JP"],
10818
12294
  designPendingVisualStyleOverrides["ja-JP"],
12295
+ designFillStylesComingSoonOverrides["ja-JP"],
12296
+ designFramePresetsOverrides["ja-JP"],
12297
+ designAlignmentOverrides["ja-JP"],
12298
+ designShaderAndRotationOverrides["ja-JP"],
12299
+ designInteractionStatesOverrides["ja-JP"],
12300
+ designMotionAndBreakpointOverrides["ja-JP"],
12301
+ breakpointBarOverrides["ja-JP"],
12302
+ motionDockOverrides["ja-JP"],
10819
12303
  {
10820
12304
  root: {
10821
12305
  commandActions: "操作",
@@ -10871,8 +12355,15 @@ export const messagesByLocale = {
10871
12355
  designShapeToolOverrides["ko-KR"],
10872
12356
  designPublicShareOverrides["ko-KR"],
10873
12357
  designVisualEditOverrides["ko-KR"],
10874
- designLocalSourceEditOverrides["ko-KR"],
10875
12358
  designPendingVisualStyleOverrides["ko-KR"],
12359
+ designFillStylesComingSoonOverrides["ko-KR"],
12360
+ designFramePresetsOverrides["ko-KR"],
12361
+ designAlignmentOverrides["ko-KR"],
12362
+ designShaderAndRotationOverrides["ko-KR"],
12363
+ designInteractionStatesOverrides["ko-KR"],
12364
+ designMotionAndBreakpointOverrides["ko-KR"],
12365
+ breakpointBarOverrides["ko-KR"],
12366
+ motionDockOverrides["ko-KR"],
10876
12367
  {
10877
12368
  root: {
10878
12369
  commandActions: "작업",
@@ -10926,8 +12417,15 @@ export const messagesByLocale = {
10926
12417
  designShapeToolOverrides["pt-BR"],
10927
12418
  designPublicShareOverrides["pt-BR"],
10928
12419
  designVisualEditOverrides["pt-BR"],
10929
- designLocalSourceEditOverrides["pt-BR"],
10930
12420
  designPendingVisualStyleOverrides["pt-BR"],
12421
+ designFillStylesComingSoonOverrides["pt-BR"],
12422
+ designFramePresetsOverrides["pt-BR"],
12423
+ designAlignmentOverrides["pt-BR"],
12424
+ designShaderAndRotationOverrides["pt-BR"],
12425
+ designInteractionStatesOverrides["pt-BR"],
12426
+ designMotionAndBreakpointOverrides["pt-BR"],
12427
+ breakpointBarOverrides["pt-BR"],
12428
+ motionDockOverrides["pt-BR"],
10931
12429
  {
10932
12430
  root: {
10933
12431
  commandActions: "Ações",
@@ -10982,8 +12480,15 @@ export const messagesByLocale = {
10982
12480
  designShapeToolOverrides["hi-IN"],
10983
12481
  designPublicShareOverrides["hi-IN"],
10984
12482
  designVisualEditOverrides["hi-IN"],
10985
- designLocalSourceEditOverrides["hi-IN"],
10986
12483
  designPendingVisualStyleOverrides["hi-IN"],
12484
+ designFillStylesComingSoonOverrides["hi-IN"],
12485
+ designFramePresetsOverrides["hi-IN"],
12486
+ designAlignmentOverrides["hi-IN"],
12487
+ designShaderAndRotationOverrides["hi-IN"],
12488
+ designInteractionStatesOverrides["hi-IN"],
12489
+ designMotionAndBreakpointOverrides["hi-IN"],
12490
+ breakpointBarOverrides["hi-IN"],
12491
+ motionDockOverrides["hi-IN"],
10987
12492
  {
10988
12493
  root: {
10989
12494
  commandActions: "क्रियाएं",
@@ -11038,8 +12543,15 @@ export const messagesByLocale = {
11038
12543
  designShapeToolOverrides["ar-SA"],
11039
12544
  designPublicShareOverrides["ar-SA"],
11040
12545
  designVisualEditOverrides["ar-SA"],
11041
- designLocalSourceEditOverrides["ar-SA"],
11042
12546
  designPendingVisualStyleOverrides["ar-SA"],
12547
+ designFillStylesComingSoonOverrides["ar-SA"],
12548
+ designFramePresetsOverrides["ar-SA"],
12549
+ designAlignmentOverrides["ar-SA"],
12550
+ designShaderAndRotationOverrides["ar-SA"],
12551
+ designInteractionStatesOverrides["ar-SA"],
12552
+ designMotionAndBreakpointOverrides["ar-SA"],
12553
+ breakpointBarOverrides["ar-SA"],
12554
+ motionDockOverrides["ar-SA"],
11043
12555
  {
11044
12556
  root: {
11045
12557
  commandActions: "الإجراءات",