@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
@@ -108,9 +108,13 @@ const messages = {
108
108
  removeLayer: "移除圖層",
109
109
  showLayer: "顯示圖層",
110
110
  hideLayer: "隱藏圖層",
111
+ reorderLayer: "重新排序圖層",
112
+ stylesComingSoon: "樣式 — 即將推出",
111
113
  linkSides: "連結四邊",
112
114
  unlinkSides: "取消連結四邊",
113
115
  allSides: "全部",
116
+ lockAspectRatio: "鎖定長寬比",
117
+ unlockAspectRatio: "解鎖長寬比",
114
118
  cornerRadius: "圓角半徑",
115
119
  independentCorners: "獨立圓角",
116
120
  topLeft: "左上",
@@ -122,12 +126,77 @@ const messages = {
122
126
  outline: "外框",
123
127
  inside: "內側",
124
128
  outside: "外側",
129
+ center: "中心",
125
130
  dropShadow: "投影",
126
131
  addDropShadow: "新增投影",
127
132
  innerShadow: "內陰影",
128
133
  layerBlur: "圖層模糊",
129
134
  blur: "模糊",
130
135
  spread: "擴散",
136
+ rotation3d: "3D 旋轉",
137
+ rotationX: "旋轉 X",
138
+ rotationY: "旋轉 Y",
139
+ perspective: "透視",
140
+ perspectiveHint: "透視(空白/0 = 無)",
141
+ customTransform: "自訂變形 — 無法編輯為 X/Y/Z 旋轉",
142
+ shaderEffectType: "著色器",
143
+ },
144
+ shaders: {
145
+ fillsTitle: "著色器填充",
146
+ effectsTitle: "著色器效果",
147
+ createdByYou: "您建立的",
148
+ presets: "預設集",
149
+ createNew: "新增",
150
+ ai: "AI",
151
+ savedInThisDesign: "已儲存於此設計",
152
+ noMatches: "沒有符合搜尋條件的著色器",
153
+ backToBrowser: "返回著色器瀏覽",
154
+ closePanel: "關閉著色器面板",
155
+ editCode: "編輯 GLSL 程式碼",
156
+ removeShader: "移除著色器",
157
+ removeShaderEffect: "移除著色器效果",
158
+ noUniforms: "此著色器沒有可調整的參數",
159
+ codeHint:
160
+ "GLSL 原始碼已儲存在此畫面的 HTML 中 — 開啟程式碼面板即可編輯。",
161
+ selectElementFirst: "請先選取畫面元素",
162
+ selectCanvasElementFirst: "請先在畫布上選取元素",
163
+ saveFailed: "無法儲存著色器",
164
+ categories: {
165
+ gradientFlow: "漸層流動",
166
+ waves: "波浪",
167
+ noise: "雜訊",
168
+ pattern: "圖案",
169
+ texture: "紋理",
170
+ retro: "復古",
171
+ },
172
+ },
173
+ interactionStates: {
174
+ default: "預設",
175
+ hover: "懸停",
176
+ focus: "聚焦",
177
+ focusVisible: "聚焦可見",
178
+ active: "按下",
179
+ disabled: "停用",
180
+ selectorLabel: "互動狀態",
181
+ selectorTooltip: "預覽並編輯懸停、聚焦與按下狀態",
182
+ editingState: "正在編輯{{state}}狀態",
183
+ editingStateTooltip:
184
+ "正在編輯{{state}}狀態 — 這裡的樣式僅在元素處於{{state}}時套用",
185
+ hasOverrideIndicator: "此屬性在此狀態下已被覆寫",
186
+ reset: "重設",
187
+ resetOverride: "重設覆寫",
188
+ resetOverrideTooltip: "清除此狀態的覆寫並使用預設值",
189
+ },
190
+ motionKeyframe: {
191
+ addTooltip: "新增關鍵影格",
192
+ removeTooltip: "移除關鍵影格",
193
+ },
194
+ breakpointOverride: {
195
+ overriddenTooltip: "已在此中斷點覆寫",
196
+ overriddenAtTooltip: "已在 {{width}}px 覆寫",
197
+ reset: "重設覆寫",
198
+ resetShort: "重設",
199
+ resetTooltip: "清除此中斷點的覆寫並使用基礎值",
131
200
  },
132
201
  selection: {
133
202
  pageContext: "頁面預設",
@@ -238,12 +307,90 @@ const messages = {
238
307
  dotted: "點線",
239
308
  double: "雙線",
240
309
  },
310
+ framePresets: {
311
+ title: "外框",
312
+ categories: {
313
+ phone: "手機",
314
+ tablet: "平板",
315
+ desktop: "桌面",
316
+ presentation: "簡報",
317
+ watch: "手錶",
318
+ paper: "紙張",
319
+ socialMedia: "社群媒體",
320
+ },
321
+ },
241
322
  },
242
323
  designEditor: {
243
324
  askAgent: "詢問代理",
325
+ breakpointBar: {
326
+ base: "基礎",
327
+ editBaseWidth: "編輯基礎寬度",
328
+ addBreakpoint: "新增中斷點",
329
+ remove: "移除中斷點",
330
+ options: "中斷點選項",
331
+ changeWidth: "變更寬度",
332
+ customWidth: "自訂寬度",
333
+ add: "新增",
334
+ showAllBreakpoints: "顯示所有中斷點",
335
+ desktop: "桌面",
336
+ tablet: "平板",
337
+ phone: "手機",
338
+ },
339
+ motion: {
340
+ dockLabel: "動態面板",
341
+ collapseDock: "收起動態面板",
342
+ play: "播放",
343
+ pause: "暫停",
344
+ resetPlayhead: "重設播放頭",
345
+ reset: "重設",
346
+ addKeyframeAtPlayhead: "在播放頭處新增關鍵影格",
347
+ addKeyframeAtPlayheadForProperty:
348
+ "在播放頭處新增關鍵影格({{property}})",
349
+ selectPropertyRowFirst: "請先選取屬性列",
350
+ currentTimeMs: "目前時間(毫秒)",
351
+ duration: "持續時間",
352
+ durationMs: "持續時間(毫秒)",
353
+ playbackMode: "播放模式:{{mode}}",
354
+ playback: "播放:{{mode}}",
355
+ loop: "循環",
356
+ once: "一次",
357
+ pingPong: "往復",
358
+ toggleAutoKeyframe: "切換自動關鍵影格",
359
+ autoKeyframe: "自動關鍵影格",
360
+ savingMotion: "正在儲存動態效果",
361
+ emptyStateAnimate: "為",
362
+ emptyStatePickProperty: "新增動態效果。選擇一個屬性以新增第一個軌道。",
363
+ emptyStateNoSelection:
364
+ "在畫布上選取一個元素,然後新增軌道為其新增動態效果。",
365
+ addMotion: "新增動態",
366
+ selectElementFirst: "請先在畫布上選取一個元素",
367
+ animateLayer: "為「{{label}}」新增動態",
368
+ more: "更多",
369
+ addKeyframe: "新增關鍵影格",
370
+ trackExists:
371
+ "「{{property}}」軌道已存在於 {{label}}。請在時間軸中編輯其關鍵影格。",
372
+ layerAnimationSpan: "{{label}} 動態時間範圍",
373
+ keyframeAt: "{{ms}}毫秒處的關鍵影格",
374
+ deleteKeyframe: "刪除關鍵影格",
375
+ segmentEasing: "區段緩動:{{ease}}",
376
+ curveTab: "曲線",
377
+ springTab: "彈簧",
378
+ customBezier: "自訂貝茲曲線",
379
+ customSpring: "自訂彈簧",
380
+ bounce: "彈性",
381
+ bezierCurveEditor: "貝茲曲線編輯器",
382
+ springCurvePreview: "彈簧曲線預覽",
383
+ defaultEase: "預設",
384
+ },
244
385
  applyToSource: "套用至來源",
245
386
  applyToSourcePath: "套用至來源({{path}})",
387
+ applyToSourceUnavailableCompiled:
388
+ "編譯後的框架路由(React/TS 元件)尚不支援寫回來源。請改為請代理編輯來源檔案。",
246
389
  writingToSource: "寫入中…",
390
+ appliedToSource: "已儲存至 {{path}}",
391
+ applyToSourceConflict:
392
+ "{{path}} 自開啟後已在磁碟上變更。請重新載入畫面後再試一次。",
393
+ applyToSourceError: "無法儲存至來源:{{message}}",
247
394
  leftRail: {
248
395
  file: "檔案",
249
396
  agent: "代理",
@@ -499,19 +646,12 @@ const messages = {
499
646
  primitiveInsertFailed: "無法將該圖層新增到畫面",
500
647
  layerMoveFailed: "無法移動該圖層",
501
648
  duplicateElementFailed: "無法複製該元素",
649
+ eyedropperUnsupported: "此瀏覽器不支援取色器",
502
650
  saveCopyError: "無法儲存這個設計的副本",
503
651
  auditRunFailed: "無法執行設計稽核",
504
652
  undoSkippedConcurrentEdit: "已略過復原 — 其他人移動了該項目",
505
653
  redoSkippedConcurrentEdit: "已略過重做 — 其他人移動了該項目",
506
- },
507
- localSourceEdit: {
508
- copyPrompt: "複製提示",
509
- askAi: "詢問 AI",
510
- applyWithAi: "用 AI 套用",
511
- copyPromptTooltip: "將提示複製到剪貼簿",
512
- targeting: "目標:",
513
- describeElementChange: "描述要對此元素進行的變更…",
514
- describeChange: "描述您想要變更的內容…",
654
+ autoLayoutScreensUnsupported: "新增自動布局不適用於畫面",
515
655
  },
516
656
  },
517
657
  layersPanel: {
@@ -534,6 +674,20 @@ const messages = {
534
674
  show: "顯示圖層",
535
675
  rename: "重新命名圖層",
536
676
  deleteBoardObject: "刪除畫布物件",
677
+ copy: "複製",
678
+ pasteHere: "貼在這裡",
679
+ duplicate: "重製",
680
+ delete: "刪除",
681
+ group: "群組",
682
+ ungroup: "取消群組",
683
+ bringForward: "上移一層",
684
+ bringToFront: "移到最上層",
685
+ sendBackward: "下移一層",
686
+ sendToBack: "移到最下層",
687
+ pasteToReplace: "貼上以取代",
688
+ frameSelection: "將選取範圍建立畫框",
689
+ flipHorizontal: "水平翻轉",
690
+ flipVertical: "垂直翻轉",
537
691
  },
538
692
  multiScreenCanvas: {
539
693
  duplicate: "複製",
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Localized strings for BreakpointDeviceControl and breakpoint interactions.
3
+ * Used in: app/components/design/BreakpointBar.tsx (the unified breakpoint
4
+ * targeting control in the right-inspector header).
5
+ */
6
+ export const breakpointBarOverrides = {
7
+ "en-US": {
8
+ designEditor: {
9
+ breakpointBar: {
10
+ base: "Base",
11
+ editBaseWidth: "Edit base width",
12
+ addBreakpoint: "Add breakpoint",
13
+ remove: "Remove breakpoint",
14
+ options: "Breakpoint options",
15
+ changeWidth: "Change width",
16
+ customWidth: "Custom width",
17
+ add: "Add",
18
+ showAllBreakpoints: "Show all breakpoints",
19
+ desktop: "Desktop",
20
+ tablet: "Tablet",
21
+ phone: "Phone",
22
+ },
23
+ },
24
+ },
25
+ "zh-CN": {
26
+ designEditor: {
27
+ breakpointBar: {
28
+ base: "基础",
29
+ editBaseWidth: "编辑基础宽度",
30
+ addBreakpoint: "添加断点",
31
+ remove: "移除断点",
32
+ options: "断点选项",
33
+ changeWidth: "更改宽度",
34
+ customWidth: "自定义宽度",
35
+ add: "添加",
36
+ showAllBreakpoints: "显示所有断点",
37
+ desktop: "桌面端",
38
+ tablet: "平板",
39
+ phone: "手机",
40
+ },
41
+ },
42
+ },
43
+ "zh-TW": {
44
+ designEditor: {
45
+ breakpointBar: {
46
+ base: "基礎",
47
+ editBaseWidth: "編輯基礎寬度",
48
+ addBreakpoint: "新增中斷點",
49
+ remove: "移除中斷點",
50
+ options: "中斷點選項",
51
+ changeWidth: "變更寬度",
52
+ customWidth: "自訂寬度",
53
+ add: "新增",
54
+ showAllBreakpoints: "顯示所有中斷點",
55
+ desktop: "桌面",
56
+ tablet: "平板",
57
+ phone: "手機",
58
+ },
59
+ },
60
+ },
61
+ "es-ES": {
62
+ designEditor: {
63
+ breakpointBar: {
64
+ base: "Base",
65
+ editBaseWidth: "Editar ancho de base",
66
+ addBreakpoint: "Añadir punto de quiebre",
67
+ remove: "Quitar punto de quiebre",
68
+ options: "Opciones de punto de quiebre",
69
+ changeWidth: "Cambiar ancho",
70
+ customWidth: "Ancho personalizado",
71
+ add: "Añadir",
72
+ showAllBreakpoints: "Mostrar todos los puntos de quiebre",
73
+ desktop: "Escritorio",
74
+ tablet: "Tablet",
75
+ phone: "Teléfono",
76
+ },
77
+ },
78
+ },
79
+ "fr-FR": {
80
+ designEditor: {
81
+ breakpointBar: {
82
+ base: "Base",
83
+ editBaseWidth: "Modifier la largeur de base",
84
+ addBreakpoint: "Ajouter un point d'arrêt",
85
+ remove: "Supprimer le point d'arrêt",
86
+ options: "Options du point d'arrêt",
87
+ changeWidth: "Modifier la largeur",
88
+ customWidth: "Largeur personnalisée",
89
+ add: "Ajouter",
90
+ showAllBreakpoints: "Afficher tous les points d'arrêt",
91
+ desktop: "Bureau",
92
+ tablet: "Tablette",
93
+ phone: "Téléphone",
94
+ },
95
+ },
96
+ },
97
+ "de-DE": {
98
+ designEditor: {
99
+ breakpointBar: {
100
+ base: "Basis",
101
+ editBaseWidth: "Basisbreite bearbeiten",
102
+ addBreakpoint: "Haltepunkt hinzufügen",
103
+ remove: "Haltepunkt entfernen",
104
+ options: "Haltepunkt-Optionen",
105
+ changeWidth: "Breite ändern",
106
+ customWidth: "Benutzerdefinierte Breite",
107
+ add: "Hinzufügen",
108
+ showAllBreakpoints: "Alle Haltepunkte anzeigen",
109
+ desktop: "Desktop",
110
+ tablet: "Tablet",
111
+ phone: "Telefon",
112
+ },
113
+ },
114
+ },
115
+ "ja-JP": {
116
+ designEditor: {
117
+ breakpointBar: {
118
+ base: "ベース",
119
+ editBaseWidth: "ベース幅を編集",
120
+ addBreakpoint: "ブレークポイントを追加",
121
+ remove: "ブレークポイントを削除",
122
+ options: "ブレークポイント オプション",
123
+ changeWidth: "幅を変更",
124
+ customWidth: "カスタム幅",
125
+ add: "追加",
126
+ showAllBreakpoints: "すべてのブレークポイントを表示",
127
+ desktop: "デスクトップ",
128
+ tablet: "タブレット",
129
+ phone: "モバイル",
130
+ },
131
+ },
132
+ },
133
+ "ko-KR": {
134
+ designEditor: {
135
+ breakpointBar: {
136
+ base: "기본",
137
+ editBaseWidth: "기본 너비 편집",
138
+ addBreakpoint: "중단점 추가",
139
+ remove: "중단점 제거",
140
+ options: "중단점 옵션",
141
+ changeWidth: "너비 변경",
142
+ customWidth: "사용자 지정 너비",
143
+ add: "추가",
144
+ showAllBreakpoints: "모든 중단점 표시",
145
+ desktop: "데스크톱",
146
+ tablet: "태블릿",
147
+ phone: "휴대폰",
148
+ },
149
+ },
150
+ },
151
+ "pt-BR": {
152
+ designEditor: {
153
+ breakpointBar: {
154
+ base: "Base",
155
+ editBaseWidth: "Editar largura base",
156
+ addBreakpoint: "Adicionar ponto de interrupção",
157
+ remove: "Remover ponto de interrupção",
158
+ options: "Opções de ponto de interrupção",
159
+ changeWidth: "Alterar largura",
160
+ customWidth: "Largura personalizada",
161
+ add: "Adicionar",
162
+ showAllBreakpoints: "Mostrar todos os pontos de interrupção",
163
+ desktop: "Desktop",
164
+ tablet: "Tablet",
165
+ phone: "Telefone",
166
+ },
167
+ },
168
+ },
169
+ "hi-IN": {
170
+ designEditor: {
171
+ breakpointBar: {
172
+ base: "आधार",
173
+ editBaseWidth: "आधार चौड़ाई संपादित करें",
174
+ addBreakpoint: "ब्रेकपॉइंट जोड़ें",
175
+ remove: "ब्रेकपॉइंट हटाएं",
176
+ options: "ब्रेकपॉइंट विकल्प",
177
+ changeWidth: "चौड़ाई बदलें",
178
+ customWidth: "कस्टम चौड़ाई",
179
+ add: "जोड़ें",
180
+ showAllBreakpoints: "सभी ब्रेकपॉइंट दिखाएं",
181
+ desktop: "डेस्कटॉप",
182
+ tablet: "टैबलेट",
183
+ phone: "फ़ोन",
184
+ },
185
+ },
186
+ },
187
+ "ar-SA": {
188
+ designEditor: {
189
+ breakpointBar: {
190
+ base: "الأساس",
191
+ editBaseWidth: "تحرير عرض الأساس",
192
+ addBreakpoint: "إضافة نقطة توقف",
193
+ remove: "إزالة نقطة التوقف",
194
+ options: "خيارات نقطة التوقف",
195
+ changeWidth: "تغيير العرض",
196
+ customWidth: "عرض مخصص",
197
+ add: "إضافة",
198
+ showAllBreakpoints: "عرض جميع نقاط التوقف",
199
+ desktop: "سطح المكتب",
200
+ tablet: "الجهاز اللوحي",
201
+ phone: "الهاتف",
202
+ },
203
+ },
204
+ },
205
+ };