@agent-native/core 0.79.27 → 0.80.1

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 (497) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +34 -0
  3. package/corpus/core/docs/content/locales/ar-SA/skills-guide.mdx +5 -0
  4. package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +55 -1
  5. package/corpus/core/docs/content/locales/de-DE/skills-guide.mdx +5 -0
  6. package/corpus/core/docs/content/locales/de-DE/template-design.mdx +66 -1
  7. package/corpus/core/docs/content/locales/es-ES/skills-guide.mdx +5 -0
  8. package/corpus/core/docs/content/locales/es-ES/template-design.mdx +65 -1
  9. package/corpus/core/docs/content/locales/fr-FR/skills-guide.mdx +5 -0
  10. package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +64 -1
  11. package/corpus/core/docs/content/locales/hi-IN/skills-guide.mdx +5 -0
  12. package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +59 -1
  13. package/corpus/core/docs/content/locales/ja-JP/skills-guide.mdx +5 -0
  14. package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +62 -1
  15. package/corpus/core/docs/content/locales/ko-KR/skills-guide.mdx +5 -0
  16. package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +58 -1
  17. package/corpus/core/docs/content/locales/pt-BR/skills-guide.mdx +5 -0
  18. package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +62 -1
  19. package/corpus/core/docs/content/locales/zh-CN/skills-guide.mdx +5 -0
  20. package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +50 -1
  21. package/corpus/core/docs/content/locales/zh-TW/skills-guide.mdx +5 -0
  22. package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +52 -1
  23. package/corpus/core/docs/content/skills-guide.mdx +5 -0
  24. package/corpus/core/docs/content/template-design.mdx +59 -1
  25. package/corpus/core/package.json +2 -1
  26. package/corpus/core/src/agent/engine/index.ts +1 -0
  27. package/corpus/core/src/agent/engine/registry.ts +40 -0
  28. package/corpus/core/src/agent/production-agent.ts +6 -2
  29. package/corpus/core/src/application-state/handlers.ts +1 -1
  30. package/corpus/core/src/brand-kit/index.ts +1 -1
  31. package/corpus/core/src/cli/design-connect.ts +490 -0
  32. package/corpus/core/src/cli/index.ts +16 -0
  33. package/corpus/core/src/cli/skills.ts +144 -3
  34. package/corpus/core/src/client/AgentPanel.tsx +1 -1
  35. package/corpus/core/src/client/AssistantChat.tsx +43 -7
  36. package/corpus/core/src/client/MultiTabAssistantChat.tsx +1 -1
  37. package/corpus/core/src/client/agent-chat.ts +27 -3
  38. package/corpus/core/src/client/blocks/library/MermaidBlock.tsx +1 -1
  39. package/corpus/core/src/client/blocks/library/diagram.tsx +2 -2
  40. package/corpus/core/src/client/blocks/library/wireframe.tsx +1 -1
  41. package/corpus/core/src/client/chat/message-components.tsx +1 -1
  42. package/corpus/core/src/client/chat-model-groups.ts +1 -2
  43. package/corpus/core/src/client/components/LiveCursorOverlay.tsx +33 -66
  44. package/corpus/core/src/client/composer/TiptapComposer.tsx +99 -24
  45. package/corpus/core/src/client/composer/useVoiceDictation.ts +429 -260
  46. package/corpus/core/src/client/extensions/portable-extension.ts +1 -1
  47. package/corpus/core/src/client/frame-protocol.ts +17 -2
  48. package/corpus/core/src/client/rich-markdown-editor/RegistryBlockNode.tsx +2 -2
  49. package/corpus/core/src/client/sharing/ShareButton.tsx +20 -15
  50. package/corpus/core/src/client/use-agent-engine-configured.ts +80 -28
  51. package/corpus/core/src/code-agents/transcript-normalizer.ts +1 -1
  52. package/corpus/core/src/extensions/path.ts +1 -4
  53. package/corpus/core/src/integrations/a2a-continuation-processor.ts +1 -1
  54. package/corpus/core/src/mcp/build-server.ts +1 -1
  55. package/corpus/core/src/org/handlers.ts +5 -5
  56. package/corpus/core/src/org/plugin.ts +2 -2
  57. package/corpus/core/src/scripts/call-agent.ts +1 -1
  58. package/corpus/core/src/scripts/db/safety.ts +1 -1
  59. package/corpus/core/src/server/auth.ts +3 -0
  60. package/corpus/core/src/server/builder-design-systems.ts +308 -0
  61. package/corpus/core/src/server/core-routes-plugin.ts +29 -3
  62. package/corpus/core/src/server/index.ts +8 -0
  63. package/corpus/core/src/server/transcribe-voice.ts +57 -22
  64. package/corpus/core/src/shared/mcp-embed-headers.ts +23 -1
  65. package/corpus/core/src/styles/agent-native.css +60 -4
  66. package/corpus/core/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
  67. package/corpus/core/src/usage/store.ts +2 -2
  68. package/corpus/core/src/vite/client.ts +2 -0
  69. package/corpus/core/src/voice/index.ts +18 -0
  70. package/corpus/core/src/voice/voice-cleanup-prompt.ts +38 -0
  71. package/corpus/core/src/voice/voice-context.ts +217 -0
  72. package/corpus/core/src/voice/voice-replacements.ts +75 -0
  73. package/corpus/templates/analytics/AGENTS.md +4 -3
  74. package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +298 -15
  75. package/corpus/templates/analytics/actions/get-sql-dashboard.ts +9 -4
  76. package/corpus/templates/analytics/actions/list-session-recordings.ts +6 -1
  77. package/corpus/templates/analytics/actions/mutate-dashboard.ts +18 -2
  78. package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +12 -2
  79. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +557 -400
  80. package/corpus/templates/analytics/app/global.css +0 -4
  81. package/corpus/templates/analytics/app/hooks/use-replay-storage-status.ts +66 -0
  82. package/corpus/templates/analytics/app/i18n/zh-TW.ts +39 -0
  83. package/corpus/templates/analytics/app/i18n-data.ts +424 -0
  84. package/corpus/templates/analytics/app/pages/Settings.tsx +333 -0
  85. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +2 -1
  86. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/dashboard-layout.ts +121 -3
  87. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +82 -34
  88. package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +7 -0
  89. package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +144 -36
  90. package/corpus/templates/analytics/changelog/2026-06-28-ask-tab-now-matches-the-darker-app-background.md +6 -0
  91. package/corpus/templates/analytics/changelog/2026-06-28-dashboard-email-reports-now-use-cleaner-light-mode-snapshots.md +6 -0
  92. package/corpus/templates/analytics/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
  93. package/corpus/templates/analytics/changelog/2026-06-28-sessions-now-show-only-signed-in-recordings-with-playable-re.md +6 -0
  94. package/corpus/templates/analytics/changelog/2026-06-29-analytics-agents-can-now-place-new-charts-into-requested-das.md +6 -0
  95. package/corpus/templates/analytics/changelog/2026-06-29-analytics-queries-now-report-failed-source-query-errors-inst.md +6 -0
  96. package/corpus/templates/analytics/changelog/2026-06-29-charts-can-now-be-dropped-between-full-dashboard-rows-to-cre.md +6 -0
  97. package/corpus/templates/analytics/changelog/2026-06-29-dashboard-email-reports-include-the-full-dashboard-image-wit.md +6 -0
  98. package/corpus/templates/analytics/changelog/2026-06-29-main-surface-border-reaches-the-top.md +6 -0
  99. package/corpus/templates/analytics/changelog/2026-06-29-session-replay-now-records-playable-sessions-in-production-a.md +6 -0
  100. package/corpus/templates/analytics/changelog/2026-06-29-set-up-session-replay-storage-from-settings-connect-builder-.md +6 -0
  101. package/corpus/templates/analytics/scripts/cleanup-empty-session-recordings.ts +102 -0
  102. package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +3 -3
  103. package/corpus/templates/analytics/server/lib/dashboard-report.ts +75 -30
  104. package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +5 -2
  105. package/corpus/templates/analytics/server/lib/real-data-actions.ts +81 -20
  106. package/corpus/templates/analytics/server/lib/replay-storage.ts +79 -0
  107. package/corpus/templates/analytics/server/lib/s3-upload-provider.ts +255 -0
  108. package/corpus/templates/analytics/server/lib/session-replay.ts +53 -12
  109. package/corpus/templates/analytics/server/plugins/agent-chat.ts +11 -2
  110. package/corpus/templates/analytics/server/plugins/onboarding.ts +97 -0
  111. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +4 -4
  112. package/corpus/templates/assets/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  113. package/corpus/templates/brain/app/components/layout/Layout.tsx +29 -2
  114. package/corpus/templates/brain/app/components/layout/Sidebar.tsx +131 -42
  115. package/corpus/templates/brain/app/i18n/zh-TW.ts +2 -0
  116. package/corpus/templates/brain/app/i18n-data.ts +20 -0
  117. package/corpus/templates/brain/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
  118. package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +29 -1
  119. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +417 -299
  120. package/corpus/templates/calendar/app/i18n/zh-TW.ts +2 -0
  121. package/corpus/templates/calendar/app/i18n-data.ts +20 -0
  122. package/corpus/templates/calendar/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
  123. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +6 -19
  124. package/corpus/templates/chat/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  125. package/corpus/templates/clips/AGENTS.md +4 -0
  126. package/corpus/templates/clips/actions/cleanup-transcript.ts +39 -9
  127. package/corpus/templates/clips/actions/finalize-meeting.ts +81 -12
  128. package/corpus/templates/clips/actions/lib/agents-md-context.ts +4 -1
  129. package/corpus/templates/clips/app/components/library/library-layout.tsx +3 -3
  130. package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +1 -1
  131. package/corpus/templates/clips/app/components/player/share-dialog.tsx +2 -2
  132. package/corpus/templates/clips/changelog/2026-06-28-left-sidebar-footer-controls-use-less-divider-chrome.md +6 -0
  133. package/corpus/templates/clips/desktop/src/lib/personal-vocabulary.ts +13 -8
  134. package/corpus/templates/clips/desktop/src/lib/recorder.ts +24 -0
  135. package/corpus/templates/clips/desktop/src/lib/transcription-capture.ts +105 -5
  136. package/corpus/templates/clips/desktop/src/lib/voice-dictation.ts +60 -1
  137. package/corpus/templates/content/actions/set-image-alt-text.ts +1 -1
  138. package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +1 -1
  139. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +1 -1
  140. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +5 -5
  141. package/corpus/templates/content/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  142. package/corpus/templates/content/shared/document-export.ts +1 -1
  143. package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +8 -18
  144. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +154 -0
  145. package/corpus/templates/design/AGENTS.md +95 -5
  146. package/corpus/templates/design/DESIGN.md +82 -0
  147. package/corpus/templates/design/DEVELOPING.md +43 -0
  148. package/corpus/templates/design/actions/add-localhost-screens.ts +453 -0
  149. package/corpus/templates/design/actions/apply-shader.ts +277 -0
  150. package/corpus/templates/design/actions/apply-visual-edit.ts +303 -0
  151. package/corpus/templates/design/actions/connect-localhost.ts +183 -0
  152. package/corpus/templates/design/actions/edit-design.ts +195 -42
  153. package/corpus/templates/design/actions/generate-design.ts +71 -1
  154. package/corpus/templates/design/actions/generate-screens.ts +193 -0
  155. package/corpus/templates/design/actions/get-code-layer-projection.ts +191 -0
  156. package/corpus/templates/design/actions/get-shader.ts +119 -0
  157. package/corpus/templates/design/actions/index-design-system-with-builder.ts +259 -0
  158. package/corpus/templates/design/actions/list-localhost-connections.ts +95 -0
  159. package/corpus/templates/design/actions/navigate.ts +55 -2
  160. package/corpus/templates/design/actions/update-file.ts +9 -2
  161. package/corpus/templates/design/actions/view-screen.ts +68 -1
  162. package/corpus/templates/design/agent-native.app-skill.json +10 -0
  163. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +719 -0
  164. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +2120 -103
  165. package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +74 -38
  166. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +401 -0
  167. package/corpus/templates/design/app/components/design/EditPanel.tsx +3966 -440
  168. package/corpus/templates/design/app/components/design/LayersPanel.tsx +1473 -0
  169. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +3940 -147
  170. package/corpus/templates/design/app/components/design/QuestionFlow.tsx +700 -13
  171. package/corpus/templates/design/app/components/design/TweaksPanel.tsx +105 -63
  172. package/corpus/templates/design/app/components/design/index.ts +0 -5
  173. package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +353 -0
  174. package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +1589 -0
  175. package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +511 -0
  176. package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +395 -0
  177. package/corpus/templates/design/app/components/design/inspector/FigmaColorPicker.tsx +2010 -0
  178. package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +601 -0
  179. package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +242 -0
  180. package/corpus/templates/design/app/components/design/inspector/SHADER_INTEGRATION.md +420 -0
  181. package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +238 -0
  182. package/corpus/templates/design/app/components/design/inspector/ShaderControls.stories.tsx +71 -0
  183. package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +575 -0
  184. package/corpus/templates/design/app/components/design/inspector/ShaderEffectRow.tsx +106 -0
  185. package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +423 -0
  186. package/corpus/templates/design/app/components/design/inspector/figma-icons.tsx +741 -0
  187. package/corpus/templates/design/app/components/design/inspector/index.ts +87 -0
  188. package/corpus/templates/design/app/components/design/inspector/scrub-input-utils.ts +201 -0
  189. package/corpus/templates/design/app/components/design/types.ts +23 -0
  190. package/corpus/templates/design/app/components/layout/Layout.tsx +24 -13
  191. package/corpus/templates/design/app/components/layout/Sidebar.tsx +4 -4
  192. package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +474 -36
  193. package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +22 -5
  194. package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +24 -11
  195. package/corpus/templates/design/app/global.css +149 -5
  196. package/corpus/templates/design/app/hooks/use-agent-generating.ts +4 -0
  197. package/corpus/templates/design/app/hooks/use-navigation-state.ts +130 -8
  198. package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +329 -0
  199. package/corpus/templates/design/app/i18n/zh-TW.ts +277 -0
  200. package/corpus/templates/design/app/i18n-data.ts +3028 -1
  201. package/corpus/templates/design/app/pages/DesignEditor.tsx +5831 -904
  202. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +57 -221
  203. package/corpus/templates/design/changelog/2026-06-28-annotate-mode-now-combines-drawing-and-comment-pins-in-one-c.md +6 -0
  204. package/corpus/templates/design/changelog/2026-06-28-design-editor-panel-borders-are-cleaner-so-the-canvas-edge-s.md +6 -0
  205. package/corpus/templates/design/changelog/2026-06-28-drawing-prompts-now-reliably-open-and-submit-to-the-design-a.md +6 -0
  206. package/corpus/templates/design/changelog/2026-06-28-editor-app-menus-now-use-an-outline-agent-native-mark-with-b.md +6 -0
  207. package/corpus/templates/design/changelog/2026-06-28-figma-style-code-design-mode.md +6 -0
  208. package/corpus/templates/design/changelog/2026-06-28-layer-selection-now-updates-chat-context-without-opening-the.md +6 -0
  209. package/corpus/templates/design/changelog/2026-06-28-layer-selections-now-preserve-hidden-and-locked-canvas-state.md +6 -0
  210. package/corpus/templates/design/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  211. package/corpus/templates/design/changelog/2026-06-28-live-cursors-now-keep-names-beside-a-cleaner-pointer-marker.md +6 -0
  212. package/corpus/templates/design/changelog/2026-06-28-mode-switching-now-lives-in-a-compact-bottom-right-icon-dock.md +6 -0
  213. package/corpus/templates/design/changelog/2026-06-28-screen-overview-now-handles-zooming-drawing-opening-and-dele.md +6 -0
  214. package/corpus/templates/design/changelog/2026-06-28-screen-overview-now-selects-screens-on-click-and-opens-them-.md +6 -0
  215. package/corpus/templates/design/changelog/2026-06-28-screen-overview-zooms-into-the-active-screen-with-smoother-e.md +6 -0
  216. package/corpus/templates/design/changelog/2026-06-28-selected-element-chips-in-chat-are-shorter-and-easier-to-sca.md +6 -0
  217. package/corpus/templates/design/changelog/2026-06-28-the-design-editor-toolbar-is-more-compact-and-the-app-menu-m.md +6 -0
  218. package/corpus/templates/design/changelog/2026-06-28-tweaks-now-live-at-the-top-of-the-design-sidebar-instead-of-.md +6 -0
  219. package/corpus/templates/design/changelog/2026-06-28-tweaks-now-live-in-the-right-inspector-beside-the-design-tab.md +6 -0
  220. package/corpus/templates/design/changelog/2026-06-29-active-sidebar-rows-use-soft-highlights.md +6 -0
  221. package/corpus/templates/design/changelog/2026-06-29-agents-can-now-open-screen-overview-focus-screens-and-add.md +6 -0
  222. package/corpus/templates/design/changelog/2026-06-29-canvas-selection-no-longer-flashes-broken-prototype-html-whe.md +6 -0
  223. package/corpus/templates/design/changelog/2026-06-29-command-menu-selections-are-clearer-in-dark-mode.md +6 -0
  224. package/corpus/templates/design/changelog/2026-06-29-design-agents-now-edit-broad-copy-changes-more-reliably.md +6 -0
  225. package/corpus/templates/design/changelog/2026-06-29-design-editor-extensions-now-run-inline-beside-the-artboard.md +6 -0
  226. package/corpus/templates/design/changelog/2026-06-29-design-mode-top-chrome-now-groups-collaborators-preview-shar.md +6 -0
  227. package/corpus/templates/design/changelog/2026-06-29-element-selection-now-stays-on-the-intended-layer-after-sele.md +6 -0
  228. package/corpus/templates/design/changelog/2026-06-29-screen-overview-full-view-controls-now-sit-above-frames-inst.md +6 -0
  229. package/corpus/templates/design/changelog/2026-06-29-screen-overview-tools-can-draw-shapes-create-screens-and-kee.md +6 -0
  230. package/corpus/templates/design/changelog/2026-06-29-sidebars-use-darker-chrome-and-chat-warns-immediately.md +6 -0
  231. package/corpus/templates/design/changelog/2026-06-29-the-pen-tool-now-creates-anchor-based-bezier-vectors-with-ha.md +6 -0
  232. package/corpus/templates/design/changelog/2026-06-29-visual-edit-can-open-localhost-routes-as-url-backed-screens.md +6 -0
  233. package/corpus/templates/design/package.json +1 -0
  234. package/corpus/templates/design/server/db/schema.ts +26 -0
  235. package/corpus/templates/design/server/handlers/import-figma-system.ts +38 -85
  236. package/corpus/templates/design/server/lib/design-snapshot.ts +9 -1
  237. package/corpus/templates/design/server/plugins/agent-chat.ts +3 -0
  238. package/corpus/templates/design/shared/api.ts +27 -0
  239. package/corpus/templates/design/shared/canvas-frames.ts +103 -0
  240. package/corpus/templates/design/shared/canvas-math.ts +1058 -0
  241. package/corpus/templates/design/shared/code-layer.ts +2412 -0
  242. package/corpus/templates/design/shared/color-utils.ts +180 -0
  243. package/corpus/templates/design/shared/generation-session.ts +61 -0
  244. package/corpus/templates/design/shared/html-content.ts +21 -0
  245. package/corpus/templates/design/shared/pen-path.ts +207 -0
  246. package/corpus/templates/design/shared/shader-presets.ts +782 -0
  247. package/corpus/templates/design/shared/shader-safety.ts +137 -0
  248. package/corpus/templates/design/shared/source-mode.ts +237 -0
  249. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +149 -6
  250. package/corpus/templates/forms/app/i18n/ar-SA.ts +2 -0
  251. package/corpus/templates/forms/app/i18n/de-DE.ts +2 -0
  252. package/corpus/templates/forms/app/i18n/en-US.ts +2 -0
  253. package/corpus/templates/forms/app/i18n/es-ES.ts +2 -0
  254. package/corpus/templates/forms/app/i18n/fr-FR.ts +2 -0
  255. package/corpus/templates/forms/app/i18n/hi-IN.ts +2 -0
  256. package/corpus/templates/forms/app/i18n/ja-JP.ts +2 -0
  257. package/corpus/templates/forms/app/i18n/ko-KR.ts +2 -0
  258. package/corpus/templates/forms/app/i18n/pt-BR.ts +2 -0
  259. package/corpus/templates/forms/app/i18n/zh-CN.ts +2 -0
  260. package/corpus/templates/forms/app/i18n/zh-TW.ts +2 -0
  261. package/corpus/templates/forms/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
  262. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +2 -2
  263. package/corpus/templates/macros/changelog/2026-06-28-left-sidebar-footer-controls-use-less-divider-chrome.md +6 -0
  264. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +408 -247
  265. package/corpus/templates/mail/app/i18n/ar-SA.ts +4 -0
  266. package/corpus/templates/mail/app/i18n/de-DE.ts +4 -0
  267. package/corpus/templates/mail/app/i18n/en-US.ts +4 -0
  268. package/corpus/templates/mail/app/i18n/es-ES.ts +4 -0
  269. package/corpus/templates/mail/app/i18n/fr-FR.ts +4 -0
  270. package/corpus/templates/mail/app/i18n/hi-IN.ts +4 -0
  271. package/corpus/templates/mail/app/i18n/ja-JP.ts +4 -0
  272. package/corpus/templates/mail/app/i18n/ko-KR.ts +4 -0
  273. package/corpus/templates/mail/app/i18n/pt-BR.ts +4 -0
  274. package/corpus/templates/mail/app/i18n/zh-CN.ts +4 -0
  275. package/corpus/templates/mail/app/i18n/zh-TW.ts +4 -0
  276. package/corpus/templates/mail/app/lib/utils.ts +2 -2
  277. package/corpus/templates/mail/changelog/2026-06-28-pinned-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
  278. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +6 -8
  279. package/corpus/templates/plan/app/components/plan/wireframe/Wireframe.tsx +1 -1
  280. package/corpus/templates/plan/app/global.css +61 -78
  281. package/corpus/templates/plan/app/pages/PlansPage.tsx +8 -0
  282. package/corpus/templates/plan/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  283. package/corpus/templates/plan/changelog/2026-06-28-plans-use-the-shared-neutral-light-and-dark-theme.md +6 -0
  284. package/corpus/templates/plan/changelog/2026-06-28-sending-open-feedback-from-a-plan-now-opens-the-inline-plan-.md +6 -0
  285. package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +9 -10
  286. package/corpus/templates/slides/AGENTS.md +3 -2
  287. package/corpus/templates/slides/actions/import-file.ts +26 -17
  288. package/corpus/templates/slides/actions/index-design-system-with-builder.ts +259 -0
  289. package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +35 -167
  290. package/corpus/templates/slides/app/components/design-system/fig-import-response.ts +9 -13
  291. package/corpus/templates/slides/app/components/layout/Sidebar.tsx +5 -5
  292. package/corpus/templates/slides/app/context/DeckContext.tsx +1 -1
  293. package/corpus/templates/slides/app/i18n/ar-SA.ts +9 -37
  294. package/corpus/templates/slides/app/i18n/de-DE.ts +10 -25
  295. package/corpus/templates/slides/app/i18n/en-US.ts +9 -26
  296. package/corpus/templates/slides/app/i18n/es-ES.ts +10 -28
  297. package/corpus/templates/slides/app/i18n/fr-FR.ts +10 -28
  298. package/corpus/templates/slides/app/i18n/hi-IN.ts +9 -26
  299. package/corpus/templates/slides/app/i18n/ja-JP.ts +10 -22
  300. package/corpus/templates/slides/app/i18n/ko-KR.ts +9 -23
  301. package/corpus/templates/slides/app/i18n/pt-BR.ts +10 -28
  302. package/corpus/templates/slides/app/i18n/zh-CN.ts +9 -22
  303. package/corpus/templates/slides/app/i18n/zh-TW.ts +9 -22
  304. package/corpus/templates/slides/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  305. package/corpus/templates/slides/server/handlers/import-figma-system.ts +44 -12
  306. package/corpus/templates/slides/server/lib/chat-attachments.ts +1 -1
  307. package/corpus/templates/videos/app/components/NewCompositionPopover.tsx +1 -1
  308. package/corpus/templates/videos/app/components/Sidebar.tsx +2 -2
  309. package/corpus/templates/videos/app/components/layout/Layout.tsx +29 -2
  310. package/corpus/templates/videos/app/components/layout/NavSidebar.tsx +113 -30
  311. package/corpus/templates/videos/app/i18n/ar-SA.ts +2 -0
  312. package/corpus/templates/videos/app/i18n/de-DE.ts +2 -0
  313. package/corpus/templates/videos/app/i18n/en-US.ts +2 -0
  314. package/corpus/templates/videos/app/i18n/es-ES.ts +2 -0
  315. package/corpus/templates/videos/app/i18n/fr-FR.ts +2 -0
  316. package/corpus/templates/videos/app/i18n/hi-IN.ts +2 -0
  317. package/corpus/templates/videos/app/i18n/ja-JP.ts +2 -0
  318. package/corpus/templates/videos/app/i18n/ko-KR.ts +2 -0
  319. package/corpus/templates/videos/app/i18n/pt-BR.ts +2 -0
  320. package/corpus/templates/videos/app/i18n/zh-CN.ts +2 -0
  321. package/corpus/templates/videos/app/i18n/zh-TW.ts +2 -0
  322. package/corpus/templates/videos/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
  323. package/dist/agent/engine/index.d.ts +1 -1
  324. package/dist/agent/engine/index.d.ts.map +1 -1
  325. package/dist/agent/engine/index.js +1 -1
  326. package/dist/agent/engine/index.js.map +1 -1
  327. package/dist/agent/engine/registry.d.ts +9 -0
  328. package/dist/agent/engine/registry.d.ts.map +1 -1
  329. package/dist/agent/engine/registry.js +37 -0
  330. package/dist/agent/engine/registry.js.map +1 -1
  331. package/dist/agent/production-agent.d.ts.map +1 -1
  332. package/dist/agent/production-agent.js +4 -3
  333. package/dist/agent/production-agent.js.map +1 -1
  334. package/dist/application-state/handlers.js +1 -1
  335. package/dist/application-state/handlers.js.map +1 -1
  336. package/dist/brand-kit/index.d.ts +1 -1
  337. package/dist/brand-kit/index.js +1 -1
  338. package/dist/brand-kit/index.js.map +1 -1
  339. package/dist/cli/design-connect.d.ts +52 -0
  340. package/dist/cli/design-connect.d.ts.map +1 -0
  341. package/dist/cli/design-connect.js +409 -0
  342. package/dist/cli/design-connect.js.map +1 -0
  343. package/dist/cli/index.js +15 -0
  344. package/dist/cli/index.js.map +1 -1
  345. package/dist/cli/skills.d.ts +3 -0
  346. package/dist/cli/skills.d.ts.map +1 -1
  347. package/dist/cli/skills.js +139 -3
  348. package/dist/cli/skills.js.map +1 -1
  349. package/dist/client/AgentPanel.js +1 -1
  350. package/dist/client/AgentPanel.js.map +1 -1
  351. package/dist/client/AssistantChat.d.ts.map +1 -1
  352. package/dist/client/AssistantChat.js +38 -8
  353. package/dist/client/AssistantChat.js.map +1 -1
  354. package/dist/client/MultiTabAssistantChat.js +1 -1
  355. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  356. package/dist/client/agent-chat.d.ts +6 -0
  357. package/dist/client/agent-chat.d.ts.map +1 -1
  358. package/dist/client/agent-chat.js +17 -3
  359. package/dist/client/agent-chat.js.map +1 -1
  360. package/dist/client/blocks/library/MermaidBlock.js +1 -1
  361. package/dist/client/blocks/library/MermaidBlock.js.map +1 -1
  362. package/dist/client/blocks/library/diagram.js +1 -1
  363. package/dist/client/blocks/library/diagram.js.map +1 -1
  364. package/dist/client/blocks/library/wireframe.js +1 -1
  365. package/dist/client/blocks/library/wireframe.js.map +1 -1
  366. package/dist/client/chat/message-components.js +1 -1
  367. package/dist/client/chat/message-components.js.map +1 -1
  368. package/dist/client/chat-model-groups.d.ts.map +1 -1
  369. package/dist/client/chat-model-groups.js +1 -2
  370. package/dist/client/chat-model-groups.js.map +1 -1
  371. package/dist/client/components/LiveCursorOverlay.d.ts +1 -2
  372. package/dist/client/components/LiveCursorOverlay.d.ts.map +1 -1
  373. package/dist/client/components/LiveCursorOverlay.js +19 -40
  374. package/dist/client/components/LiveCursorOverlay.js.map +1 -1
  375. package/dist/client/composer/TiptapComposer.d.ts +3 -1
  376. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  377. package/dist/client/composer/TiptapComposer.js +86 -24
  378. package/dist/client/composer/TiptapComposer.js.map +1 -1
  379. package/dist/client/composer/useVoiceDictation.d.ts +9 -0
  380. package/dist/client/composer/useVoiceDictation.d.ts.map +1 -1
  381. package/dist/client/composer/useVoiceDictation.js +154 -32
  382. package/dist/client/composer/useVoiceDictation.js.map +1 -1
  383. package/dist/client/extensions/portable-extension.d.ts +1 -1
  384. package/dist/client/extensions/portable-extension.d.ts.map +1 -1
  385. package/dist/client/extensions/portable-extension.js.map +1 -1
  386. package/dist/client/frame-protocol.d.ts +17 -2
  387. package/dist/client/frame-protocol.d.ts.map +1 -1
  388. package/dist/client/frame-protocol.js.map +1 -1
  389. package/dist/client/rich-markdown-editor/RegistryBlockNode.js +2 -2
  390. package/dist/client/rich-markdown-editor/RegistryBlockNode.js.map +1 -1
  391. package/dist/client/sharing/ShareButton.d.ts +2 -0
  392. package/dist/client/sharing/ShareButton.d.ts.map +1 -1
  393. package/dist/client/sharing/ShareButton.js +7 -6
  394. package/dist/client/sharing/ShareButton.js.map +1 -1
  395. package/dist/client/use-agent-engine-configured.d.ts +5 -0
  396. package/dist/client/use-agent-engine-configured.d.ts.map +1 -1
  397. package/dist/client/use-agent-engine-configured.js +51 -25
  398. package/dist/client/use-agent-engine-configured.js.map +1 -1
  399. package/dist/code-agents/transcript-normalizer.js +1 -1
  400. package/dist/code-agents/transcript-normalizer.js.map +1 -1
  401. package/dist/collab/routes.d.ts +1 -1
  402. package/dist/extensions/path.d.ts +1 -1
  403. package/dist/extensions/path.d.ts.map +1 -1
  404. package/dist/extensions/path.js.map +1 -1
  405. package/dist/file-upload/actions/upload-image.d.ts +2 -2
  406. package/dist/integrations/a2a-continuation-processor.js +1 -1
  407. package/dist/integrations/a2a-continuation-processor.js.map +1 -1
  408. package/dist/mcp/build-server.d.ts +1 -1
  409. package/dist/mcp/build-server.d.ts.map +1 -1
  410. package/dist/mcp/build-server.js.map +1 -1
  411. package/dist/notifications/routes.d.ts +3 -3
  412. package/dist/observability/routes.d.ts +5 -5
  413. package/dist/org/handlers.js +5 -5
  414. package/dist/org/handlers.js.map +1 -1
  415. package/dist/org/plugin.js +2 -2
  416. package/dist/org/plugin.js.map +1 -1
  417. package/dist/scripts/call-agent.js +1 -1
  418. package/dist/scripts/call-agent.js.map +1 -1
  419. package/dist/scripts/db/safety.js +1 -1
  420. package/dist/scripts/db/safety.js.map +1 -1
  421. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  422. package/dist/server/auth.d.ts.map +1 -1
  423. package/dist/server/auth.js +3 -0
  424. package/dist/server/auth.js.map +1 -1
  425. package/dist/server/builder-design-systems.d.ts +28 -0
  426. package/dist/server/builder-design-systems.d.ts.map +1 -0
  427. package/dist/server/builder-design-systems.js +217 -0
  428. package/dist/server/builder-design-systems.js.map +1 -0
  429. package/dist/server/core-routes-plugin.d.ts +1 -0
  430. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  431. package/dist/server/core-routes-plugin.js +20 -3
  432. package/dist/server/core-routes-plugin.js.map +1 -1
  433. package/dist/server/index.d.ts +1 -0
  434. package/dist/server/index.d.ts.map +1 -1
  435. package/dist/server/index.js +1 -0
  436. package/dist/server/index.js.map +1 -1
  437. package/dist/server/transcribe-voice.d.ts +1 -1
  438. package/dist/server/transcribe-voice.d.ts.map +1 -1
  439. package/dist/server/transcribe-voice.js +40 -24
  440. package/dist/server/transcribe-voice.js.map +1 -1
  441. package/dist/shared/mcp-embed-headers.d.ts +1 -0
  442. package/dist/shared/mcp-embed-headers.d.ts.map +1 -1
  443. package/dist/shared/mcp-embed-headers.js +20 -1
  444. package/dist/shared/mcp-embed-headers.js.map +1 -1
  445. package/dist/styles/agent-native.css +60 -4
  446. package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
  447. package/dist/usage/store.js +2 -2
  448. package/dist/usage/store.js.map +1 -1
  449. package/dist/vite/client.d.ts.map +1 -1
  450. package/dist/vite/client.js +2 -0
  451. package/dist/vite/client.js.map +1 -1
  452. package/dist/voice/index.d.ts +5 -0
  453. package/dist/voice/index.d.ts.map +1 -0
  454. package/dist/voice/index.js +4 -0
  455. package/dist/voice/index.js.map +1 -0
  456. package/dist/voice/voice-cleanup-prompt.d.ts +6 -0
  457. package/dist/voice/voice-cleanup-prompt.d.ts.map +1 -0
  458. package/dist/voice/voice-cleanup-prompt.js +26 -0
  459. package/dist/voice/voice-cleanup-prompt.js.map +1 -0
  460. package/dist/voice/voice-context.d.ts +25 -0
  461. package/dist/voice/voice-context.d.ts.map +1 -0
  462. package/dist/voice/voice-context.js +156 -0
  463. package/dist/voice/voice-context.js.map +1 -0
  464. package/dist/voice/voice-replacements.d.ts +4 -0
  465. package/dist/voice/voice-replacements.d.ts.map +1 -0
  466. package/dist/voice/voice-replacements.js +52 -0
  467. package/dist/voice/voice-replacements.js.map +1 -0
  468. package/docs/content/locales/ar-SA/skills-guide.mdx +5 -0
  469. package/docs/content/locales/ar-SA/template-design.mdx +55 -1
  470. package/docs/content/locales/de-DE/skills-guide.mdx +5 -0
  471. package/docs/content/locales/de-DE/template-design.mdx +66 -1
  472. package/docs/content/locales/es-ES/skills-guide.mdx +5 -0
  473. package/docs/content/locales/es-ES/template-design.mdx +65 -1
  474. package/docs/content/locales/fr-FR/skills-guide.mdx +5 -0
  475. package/docs/content/locales/fr-FR/template-design.mdx +64 -1
  476. package/docs/content/locales/hi-IN/skills-guide.mdx +5 -0
  477. package/docs/content/locales/hi-IN/template-design.mdx +59 -1
  478. package/docs/content/locales/ja-JP/skills-guide.mdx +5 -0
  479. package/docs/content/locales/ja-JP/template-design.mdx +62 -1
  480. package/docs/content/locales/ko-KR/skills-guide.mdx +5 -0
  481. package/docs/content/locales/ko-KR/template-design.mdx +58 -1
  482. package/docs/content/locales/pt-BR/skills-guide.mdx +5 -0
  483. package/docs/content/locales/pt-BR/template-design.mdx +62 -1
  484. package/docs/content/locales/zh-CN/skills-guide.mdx +5 -0
  485. package/docs/content/locales/zh-CN/template-design.mdx +50 -1
  486. package/docs/content/locales/zh-TW/skills-guide.mdx +5 -0
  487. package/docs/content/locales/zh-TW/template-design.mdx +52 -1
  488. package/docs/content/skills-guide.mdx +5 -0
  489. package/docs/content/template-design.mdx +59 -1
  490. package/package.json +2 -1
  491. package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
  492. package/corpus/templates/design/actions/import-figma-file.ts +0 -166
  493. package/corpus/templates/design/app/components/design/DesignToolbar.tsx +0 -339
  494. package/corpus/templates/design/app/components/design/PresentMode.tsx +0 -68
  495. package/corpus/templates/design/app/components/design/ViewportTabs.tsx +0 -149
  496. package/corpus/templates/design/app/components/design/ZoomControls.tsx +0 -157
  497. package/corpus/templates/slides/server/lib/fig-design-system.ts +0 -110
@@ -1,4 +1,8 @@
1
1
  const messages = {
2
+ sidebar: {
3
+ collapseSidebar: "طي الشريط الجانبي",
4
+ expandSidebar: "توسيع الشريط الجانبي",
5
+ },
2
6
  mail: {
3
7
  appName: "البريد",
4
8
  pages: {
@@ -1,4 +1,8 @@
1
1
  const messages = {
2
+ sidebar: {
3
+ collapseSidebar: "Seitenleiste einklappen",
4
+ expandSidebar: "Seitenleiste erweitern",
5
+ },
2
6
  mail: {
3
7
  appName: "Mail",
4
8
  pages: {
@@ -1,4 +1,8 @@
1
1
  const messages = {
2
+ sidebar: {
3
+ collapseSidebar: "Collapse sidebar",
4
+ expandSidebar: "Expand sidebar",
5
+ },
2
6
  mail: {
3
7
  appName: "Mail",
4
8
  pages: {
@@ -1,4 +1,8 @@
1
1
  const messages = {
2
+ sidebar: {
3
+ collapseSidebar: "Contraer barra lateral",
4
+ expandSidebar: "Expandir barra lateral",
5
+ },
2
6
  mail: {
3
7
  appName: "Correo",
4
8
  pages: {
@@ -1,4 +1,8 @@
1
1
  const messages = {
2
+ sidebar: {
3
+ collapseSidebar: "Réduire la barre latérale",
4
+ expandSidebar: "Développer la barre latérale",
5
+ },
2
6
  mail: {
3
7
  appName: "Mail",
4
8
  pages: {
@@ -1,4 +1,8 @@
1
1
  const messages = {
2
+ sidebar: {
3
+ collapseSidebar: "साइडबार समेटें",
4
+ expandSidebar: "साइडबार फैलाएं",
5
+ },
2
6
  mail: {
3
7
  appName: "मेल",
4
8
  pages: {
@@ -1,4 +1,8 @@
1
1
  const messages = {
2
+ sidebar: {
3
+ collapseSidebar: "サイドバーを折りたたむ",
4
+ expandSidebar: "サイドバーを展開",
5
+ },
2
6
  mail: {
3
7
  appName: "メール",
4
8
  pages: {
@@ -1,4 +1,8 @@
1
1
  const messages = {
2
+ sidebar: {
3
+ collapseSidebar: "사이드바 접기",
4
+ expandSidebar: "사이드바 펼치기",
5
+ },
2
6
  mail: {
3
7
  appName: "메일",
4
8
  pages: {
@@ -1,4 +1,8 @@
1
1
  const messages = {
2
+ sidebar: {
3
+ collapseSidebar: "Recolher barra lateral",
4
+ expandSidebar: "Expandir barra lateral",
5
+ },
2
6
  mail: {
3
7
  appName: "E-mail",
4
8
  pages: {
@@ -1,4 +1,8 @@
1
1
  const messages = {
2
+ sidebar: {
3
+ collapseSidebar: "折叠侧边栏",
4
+ expandSidebar: "展开侧边栏",
5
+ },
2
6
  mail: {
3
7
  appName: "邮件",
4
8
  pages: {
@@ -1,4 +1,8 @@
1
1
  const messages = {
2
+ sidebar: {
3
+ collapseSidebar: "收合側邊欄",
4
+ expandSidebar: "展開側邊欄",
5
+ },
2
6
  mail: {
3
7
  appName: "郵件",
4
8
  pages: {
@@ -74,12 +74,12 @@ export function markdownToHtml(markdown: string): string {
74
74
  return `<h${level}>${renderInlineMarkdown(heading[2])}</h${level}>`;
75
75
  }
76
76
 
77
- if (/^(\-|\*|\+)\s+/m.test(block)) {
77
+ if (/^(-|\*|\+)\s+/m.test(block)) {
78
78
  const items = block
79
79
  .split("\n")
80
80
  .map((line) => line.trim())
81
81
  .filter(Boolean)
82
- .map((line) => line.replace(/^(\-|\*|\+)\s+/, ""))
82
+ .map((line) => line.replace(/^(-|\*|\+)\s+/, ""))
83
83
  .map((line) => `<li>${renderInlineMarkdown(line)}</li>`)
84
84
  .join("");
85
85
  return `<ul>${items}</ul>`;
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-06-28
4
+ ---
5
+
6
+ The pinned sidebar now collapses into an animated icon rail with quieter footer controls.
@@ -666,7 +666,7 @@ export function Sidebar({
666
666
  <aside
667
667
  data-collapsed={collapsed ? "true" : "false"}
668
668
  className={cn(
669
- "flex h-full min-w-0 shrink-0 flex-col overflow-hidden border-e border-border bg-sidebar text-sidebar-foreground transition-[width] duration-150",
669
+ "flex h-full min-w-0 shrink-0 flex-col overflow-hidden border-e border-border bg-sidebar text-sidebar-foreground transition-[width] duration-200 ease-out",
670
670
  collapsed ? "w-14" : "w-60",
671
671
  )}
672
672
  >
@@ -752,11 +752,11 @@ export function Sidebar({
752
752
 
753
753
  {!collapsed && session && (
754
754
  <>
755
- <div className="border-t border-border px-2 py-2">
755
+ <div className="px-2 py-2">
756
756
  <ExtensionsSidebarSection />
757
757
  </div>
758
758
 
759
- <div className="space-y-2 border-t border-border px-3 py-2">
759
+ <div className="space-y-2 px-3 py-2">
760
760
  <DevDatabaseLink />
761
761
  <FeedbackButton />
762
762
  <OrgSwitcher />
@@ -765,7 +765,7 @@ export function Sidebar({
765
765
  )}
766
766
 
767
767
  {!collapsed && !sessionLoading && !session && (
768
- <div className="space-y-2 border-t border-border px-3 py-2">
768
+ <div className="space-y-2 px-3 py-2">
769
769
  <DevDatabaseLink />
770
770
  <FeedbackButton />
771
771
  <div className="flex items-center justify-between gap-2">
@@ -786,7 +786,7 @@ export function Sidebar({
786
786
  {collapsed && collapsible ? (
787
787
  <div
788
788
  className={cn(
789
- "border-t border-border px-2 py-2",
789
+ "px-2 py-2",
790
790
  collapsed ? "flex justify-center" : "flex justify-end",
791
791
  )}
792
792
  >
@@ -795,9 +795,7 @@ export function Sidebar({
795
795
  ) : null}
796
796
 
797
797
  {!collapsed && (session || sessionLoading) && collapsible ? (
798
- <div className="flex justify-end border-t border-border px-2 py-2">
799
- {collapseButton}
800
- </div>
798
+ <div className="flex justify-end px-2 py-2">{collapseButton}</div>
801
799
  ) : null}
802
800
  </aside>
803
801
  );
@@ -316,7 +316,7 @@ function WireframeStyleToggleButton() {
316
316
  event.stopPropagation();
317
317
  toggleWireframeStyle();
318
318
  }}
319
- className="absolute right-2 top-2 z-30 inline-flex h-7 items-center gap-1 rounded-md border border-border/60 bg-background/90 px-2 text-xs font-medium text-muted-foreground opacity-0 shadow-sm backdrop-blur transition-[color,opacity] hover:text-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring group-hover/wireframe-artboard:opacity-100"
319
+ className="absolute right-2 top-2 z-30 inline-flex h-7 items-center gap-1 rounded-md border border-border/60 bg-background px-2 text-xs font-medium text-muted-foreground opacity-0 shadow-sm transition-[color,opacity] hover:text-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring group-hover/wireframe-artboard:opacity-100"
320
320
  >
321
321
  <IconPencil className="size-3.5" aria-hidden="true" />
322
322
  <span>{label}</span>
@@ -27,25 +27,25 @@
27
27
  }
28
28
 
29
29
  :root {
30
- --background: 40 23% 97%;
31
- --foreground: 30 5% 10%;
32
- --card: 40 23% 99%;
33
- --card-foreground: 30 5% 10%;
34
- --popover: 40 23% 99%;
35
- --popover-foreground: 30 5% 10%;
36
- --primary: 30 5% 13%;
30
+ --background: 0 0% 100%;
31
+ --foreground: 220 10% 10%;
32
+ --card: 0 0% 100%;
33
+ --card-foreground: 220 10% 10%;
34
+ --popover: 0 0% 100%;
35
+ --popover-foreground: 220 10% 10%;
36
+ --primary: 220 10% 15%;
37
37
  --primary-foreground: 0 0% 100%;
38
- --secondary: 45 14% 94%;
39
- --secondary-foreground: 30 5% 13%;
40
- --muted: 45 14% 94%;
41
- --muted-foreground: 30 6% 43%;
42
- --accent: 45 14% 94%;
43
- --accent-foreground: 30 5% 13%;
38
+ --secondary: 220 10% 95%;
39
+ --secondary-foreground: 220 10% 15%;
40
+ --muted: 220 10% 95%;
41
+ --muted-foreground: 220 5% 45%;
42
+ --accent: 220 10% 95%;
43
+ --accent-foreground: 220 10% 15%;
44
44
  --destructive: 0 84% 60%;
45
45
  --destructive-foreground: 0 0% 98%;
46
- --border: 36 10% 86%;
47
- --input: 36 10% 86%;
48
- --ring: 218 85% 57%;
46
+ --border: 220 10% 90%;
47
+ --input: 220 10% 90%;
48
+ --ring: 220 10% 40%;
49
49
  --radius: 0.5rem;
50
50
  /* Callout tone accents — info/decision/risk/warning/success. */
51
51
  --plan-tone-info: 218 85% 57%;
@@ -53,14 +53,14 @@
53
53
  --plan-tone-risk: 0 84% 60%;
54
54
  --plan-tone-warning: 25 95% 48%;
55
55
  --plan-tone-success: 142 71% 38%;
56
- --sidebar-background: 42 18% 96%;
57
- --sidebar-foreground: 30 6% 43%;
58
- --sidebar-primary: 30 5% 13%;
56
+ --sidebar-background: 220 10% 97%;
57
+ --sidebar-foreground: 220 5% 45%;
58
+ --sidebar-primary: 220 10% 15%;
59
59
  --sidebar-primary-foreground: 0 0% 100%;
60
- --sidebar-accent: 45 14% 93%;
61
- --sidebar-accent-foreground: 30 5% 13%;
62
- --sidebar-border: 36 10% 86%;
63
- --sidebar-ring: 218 85% 57%;
60
+ --sidebar-accent: 220 10% 95%;
61
+ --sidebar-accent-foreground: 220 10% 15%;
62
+ --sidebar-border: 220 10% 90%;
63
+ --sidebar-ring: 220 10% 40%;
64
64
  /* ── Plan document font sizes — edit here to resize globally ──────────────
65
65
  --plan-code-size : general monospace code surfaces and editors
66
66
  --plan-doc-code-size: dense read-only code surfaces such as diffs,
@@ -72,25 +72,25 @@
72
72
  }
73
73
 
74
74
  .dark {
75
- --background: 30 4% 11%;
76
- --foreground: 40 9% 95%;
77
- --card: 30 5% 13%;
78
- --card-foreground: 40 9% 95%;
79
- --popover: 30 5% 13%;
80
- --popover-foreground: 40 9% 95%;
81
- --primary: 40 9% 92%;
82
- --primary-foreground: 30 4% 11%;
83
- --secondary: 36 5% 16%;
84
- --secondary-foreground: 40 9% 95%;
85
- --muted: 36 5% 16%;
86
- --muted-foreground: 38 7% 63%;
87
- --accent: 36 5% 17%;
88
- --accent-foreground: 40 9% 95%;
75
+ --background: 220 6% 6%;
76
+ --foreground: 0 0% 90%;
77
+ --card: 220 5% 6%;
78
+ --card-foreground: 0 0% 90%;
79
+ --popover: 220 5% 6%;
80
+ --popover-foreground: 0 0% 90%;
81
+ --primary: 0 0% 75%;
82
+ --primary-foreground: 220 6% 6%;
83
+ --secondary: 220 4% 12%;
84
+ --secondary-foreground: 0 0% 90%;
85
+ --muted: 220 4% 10%;
86
+ --muted-foreground: 220 4% 60%;
87
+ --accent: 220 4% 13%;
88
+ --accent-foreground: 0 0% 90%;
89
89
  --destructive: 0 63% 51%;
90
90
  --destructive-foreground: 0 0% 98%;
91
- --border: 35 5% 21%;
92
- --input: 35 5% 21%;
93
- --ring: 218 85% 67%;
91
+ --border: 220 4% 14%;
92
+ --input: 220 4% 14%;
93
+ --ring: 0 0% 60%;
94
94
  --radius: 0.5rem;
95
95
  /* Callout tone accents — brighter so they read on the dark surface. */
96
96
  --plan-tone-info: 218 85% 67%;
@@ -98,14 +98,14 @@
98
98
  --plan-tone-risk: 0 84% 67%;
99
99
  --plan-tone-warning: 28 96% 60%;
100
100
  --plan-tone-success: 142 60% 52%;
101
- --sidebar-background: 30 5% 10%;
102
- --sidebar-foreground: 38 7% 63%;
103
- --sidebar-primary: 40 9% 92%;
104
- --sidebar-primary-foreground: 30 4% 11%;
105
- --sidebar-accent: 36 5% 16%;
106
- --sidebar-accent-foreground: 40 9% 95%;
107
- --sidebar-border: 35 5% 18%;
108
- --sidebar-ring: 218 85% 67%;
101
+ --sidebar-background: 220 6% 4%;
102
+ --sidebar-foreground: 220 4% 60%;
103
+ --sidebar-primary: 0 0% 75%;
104
+ --sidebar-primary-foreground: 220 6% 6%;
105
+ --sidebar-accent: 220 4% 10%;
106
+ --sidebar-accent-foreground: 0 0% 90%;
107
+ --sidebar-border: 220 4% 10%;
108
+ --sidebar-ring: 0 0% 60%;
109
109
  }
110
110
 
111
111
  @layer base {
@@ -129,37 +129,20 @@
129
129
 
130
130
  @layer utilities {
131
131
  .plan-content-surface {
132
- --plan-document: hsl(42 18% 97%);
132
+ --plan-document: hsl(var(--background));
133
133
  --plan-canvas: color-mix(in srgb, var(--plan-document) 96%, black);
134
- --plan-block: hsl(42 16% 94%);
135
- --plan-chrome: hsl(42 15% 96% / 0.92);
136
- --plan-line: hsl(36 9% 82%);
137
- --plan-grid-line: hsl(36 9% 70% / 0.08);
138
- --plan-text: hsl(30 5% 11%);
139
- --plan-muted: hsl(30 5% 45%);
140
- --plan-wireframe: hsl(42 16% 98%);
141
- --plan-sketch-line: hsl(28 4% 20%);
142
- --plan-muted-line: hsl(36 6% 78%);
143
- --plan-placeholder-line: hsl(36 5% 72% / 0.72);
144
- --plan-code: hsl(40 12% 96%);
145
- --plan-code-text: hsl(28 5% 14%);
146
- }
147
-
148
- .dark .plan-content-surface {
149
- --plan-document: hsl(32 3% 13%);
150
- --plan-canvas: color-mix(in srgb, var(--plan-document) 80%, black);
151
- --plan-block: hsl(32 3% 15.5%);
152
- --plan-chrome: hsl(32 3% 15.5% / 0.92);
153
- --plan-line: hsl(34 4% 24%);
154
- --plan-grid-line: hsl(34 4% 36% / 0.08);
155
- --plan-text: hsl(40 8% 94%);
156
- --plan-muted: hsl(36 5% 65%);
157
- --plan-wireframe: hsl(34 3% 13.4%);
158
- --plan-sketch-line: hsl(38 5% 84%);
159
- --plan-muted-line: hsl(36 4% 44%);
160
- --plan-placeholder-line: hsl(36 4% 54% / 0.62);
161
- --plan-code: hsl(32 4% 9.8%);
162
- --plan-code-text: hsl(40 9% 92%);
134
+ --plan-block: hsl(var(--secondary));
135
+ --plan-chrome: hsl(var(--background) / 0.92);
136
+ --plan-line: hsl(var(--border));
137
+ --plan-grid-line: hsl(var(--foreground) / 0.08);
138
+ --plan-text: hsl(var(--foreground));
139
+ --plan-muted: hsl(var(--muted-foreground));
140
+ --plan-wireframe: hsl(var(--card));
141
+ --plan-sketch-line: hsl(var(--foreground) / 0.86);
142
+ --plan-muted-line: hsl(var(--border));
143
+ --plan-placeholder-line: hsl(var(--muted-foreground) / 0.42);
144
+ --plan-code: hsl(var(--muted));
145
+ --plan-code-text: hsl(var(--foreground));
163
146
  }
164
147
 
165
148
  .plan-content-surface[data-recap-screenshot-theme="light"] {
@@ -5116,6 +5116,8 @@ export function PlansPage({ localPlanSlug }: { localPlanSlug?: string } = {}) {
5116
5116
  sendToAgentChat({
5117
5117
  type: "content",
5118
5118
  submit: true,
5119
+ chatTarget: "local",
5120
+ openSidebar: true,
5119
5121
  context,
5120
5122
  images: capture.images,
5121
5123
  message: buildApplyFeedbackMessage(openCommentCount),
@@ -5125,6 +5127,12 @@ export function PlansPage({ localPlanSlug }: { localPlanSlug?: string } = {}) {
5125
5127
  ? t("plansPage.reader.sentCommentsWithScreenshots")
5126
5128
  : t("plansPage.reader.sentComments"),
5127
5129
  );
5130
+ } catch (error) {
5131
+ console.error(
5132
+ "[PlansPage] Failed to send plan feedback to inline agent:",
5133
+ error,
5134
+ );
5135
+ toast.error(t("plansPage.comments.sendFailed"));
5128
5136
  } finally {
5129
5137
  setSendingFeedback(false);
5130
5138
  }
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-06-28
4
+ ---
5
+
6
+ Left sidebar collapse motion and footer controls now feel smoother and use less divider chrome.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-06-28
4
+ ---
5
+
6
+ Plans now use the shared neutral light and dark theme instead of a warm-tinted palette.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-06-28
4
+ ---
5
+
6
+ Sending open feedback from a plan now opens the inline Plan agent reliably.
@@ -24,22 +24,21 @@ Design systems are stored in the `design_systems` SQL table. Each has a `data` c
24
24
 
25
25
  ### Source: Figma `.fig` file
26
26
 
27
- When the user uploads a raw Figma local copy (`.fig`), parse it in-process with
28
- `import-file` instead of treating it like a document:
27
+ When the user uploads a raw Figma local copy (`.fig`), start Builder
28
+ design-system indexing with `import-file` instead of treating it like a
29
+ document:
29
30
 
30
31
  ```bash
31
32
  pnpm action import-file --filePath "data/uploads/brand.fig" --format fig
32
33
  ```
33
34
 
34
- The action returns `designSystem`, `customInstructions`, and `preview`. Review
35
- the result, then call `create-design-system` with:
35
+ The action requires Builder to be connected and returns Builder `projectId`,
36
+ `jobId`, `designSystemId`, and `builderUrl`. Builder is the source of truth for
37
+ the indexed brand kit, generated docs, and usage guidance.
36
38
 
37
- - `title`: the returned title or a user-approved name
38
- - `data`: `JSON.stringify(designSystem)`
39
- - `customInstructions`: the returned `customInstructions`
40
-
41
- Do not call `import-document` for `.fig` files; it only handles metadata and
42
- will miss the real design tokens.
39
+ Do not call `create-design-system` locally from `.fig` uploads. Do not call
40
+ `import-document` for `.fig` files; it only handles metadata and will miss the
41
+ Builder indexing flow.
43
42
 
44
43
  ## Applying to Slides
45
44
 
@@ -19,8 +19,9 @@ Detailed deck, slide-editing, image, design-system, and export workflows live in
19
19
  - Preserve deck structure and visual consistency. Prefer focused slide edits over
20
20
  regenerating whole decks unless requested.
21
21
  - Follow linked design-system tokens and custom instructions.
22
- - For raw Figma `.fig` uploads, call `import-file --format fig`, then create a
23
- design system from the returned `designSystem` and `customInstructions`.
22
+ - For raw Figma `.fig` uploads, call `import-file --format fig` to start
23
+ Builder design-system indexing. Do not create a local design system from raw
24
+ `.fig` output.
24
25
  - Treat import/export actions as shortcuts, not capability limits. When the
25
26
  exact Google Drive endpoint, file metadata field, export format, pagination
26
27
  mode, or API version matters, use `provider-api-catalog`,
@@ -3,13 +3,13 @@ import path from "path";
3
3
 
4
4
  import { defineAction } from "@agent-native/core";
5
5
  import { writeAppState } from "@agent-native/core/application-state";
6
+ import { startBuilderDesignSystemIndex } from "@agent-native/core/server";
6
7
  import { assertAccess } from "@agent-native/core/sharing";
7
8
  import { eq } from "drizzle-orm";
8
9
  import { z } from "zod";
9
10
 
10
11
  import { getDb, schema } from "../server/db/index.js";
11
12
  import { notifyClients } from "../server/handlers/decks.js";
12
- import { parseSlidesFigDesignSystem } from "../server/lib/fig-design-system.js";
13
13
  import { resolveUserUploadedFile } from "./_uploaded-files.js";
14
14
 
15
15
  const DEFAULT_MAX_SOURCE_CHARS = 60_000;
@@ -20,8 +20,8 @@ export default defineAction({
20
20
  "For PPTX files, returns parsed slides with text and layout info ready for conversion. " +
21
21
  "For DOCX files, returns structured sections extracted from the document. " +
22
22
  "For PDF files, returns extracted text organized by page. " +
23
- "For Figma .fig files, returns extracted brand/design-system tokens and a preview; call create-design-system with the returned data. " +
24
- "The agent can then use the extracted content to create a deck via create-deck or add-slide, or create a design system from .fig tokens.",
23
+ "For Figma .fig files, requires Builder.io and starts Builder design-system indexing; the returned Builder job/design-system ids are the source of truth. " +
24
+ "The agent can then use the extracted content to create a deck via create-deck or add-slide, or tell the user where Builder is indexing the design system.",
25
25
  schema: z.object({
26
26
  filePath: z
27
27
  .string()
@@ -78,27 +78,36 @@ export default defineAction({
78
78
  if (detectedFormat === "fig") {
79
79
  if (importIntoDeck) {
80
80
  throw new Error(
81
- "Figma .fig imports create design systems, not slide replacements. Re-run without importIntoDeck, then call create-design-system with the returned data.",
81
+ "Figma .fig imports start Builder design-system indexing, not slide replacements. Re-run without importIntoDeck.",
82
82
  );
83
83
  }
84
- const result = parseSlidesFigDesignSystem({
85
- data: fileBuffer,
86
- filename: path.basename(absPath),
84
+ const title = titleFromPath(absPath);
85
+ const result = await startBuilderDesignSystemIndex({
86
+ projectName: title,
87
+ files: [
88
+ {
89
+ name: path.basename(absPath),
90
+ data: fileBuffer,
91
+ mimeType: "application/octet-stream",
92
+ },
93
+ ],
87
94
  });
88
95
  return {
89
96
  format: "fig",
90
- title: result.suggestedTitle,
91
- designSystem: result.data,
92
- customInstructions: result.customInstructions,
93
- preview: result.preview,
97
+ title,
98
+ source: "builder",
99
+ projectId: result.projectId,
100
+ jobId: result.jobId,
101
+ designSystemId: result.designSystemId,
102
+ builderUrl: result.builderUrl,
103
+ status: result.status,
94
104
  deckId,
95
105
  instructions: [
96
- "Parsed the .fig file and extracted a slide-ready design system.",
97
- "Call create-design-system with:",
98
- `- title: ${JSON.stringify(result.suggestedTitle)}`,
99
- "- data: JSON.stringify(designSystem)",
100
- "- customInstructions: the returned customInstructions string",
101
- "Then set it as default or apply it to a deck if the user asked.",
106
+ "Sent the .fig file to Builder design-system indexing.",
107
+ `Builder design system: ${result.designSystemId}`,
108
+ `Builder job: ${result.jobId}`,
109
+ `Open: ${result.builderUrl}`,
110
+ "Do not call create-design-system locally for this .fig file; Builder owns the indexed design-system docs and generated usage guidance.",
102
111
  ].join("\n"),
103
112
  };
104
113
  }