@agent-native/core 0.84.1 → 0.84.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 (75) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/core/CHANGELOG.md +7 -0
  3. package/corpus/core/docs/design/durable-agent-runs.md +34 -35
  4. package/corpus/core/package.json +1 -1
  5. package/corpus/core/src/agent/engine/builder-engine.ts +81 -9
  6. package/corpus/core/src/agent/run-manager.ts +8 -7
  7. package/corpus/core/src/cli/design-connect.ts +175 -0
  8. package/corpus/core/src/cli/skills.ts +5 -7
  9. package/corpus/core/src/client/AgentPanel.tsx +8 -0
  10. package/corpus/core/src/client/MultiTabAssistantChat.tsx +4 -1
  11. package/corpus/core/src/client/agent-chat-adapter.ts +45 -15
  12. package/corpus/core/src/client/sse-event-processor.ts +31 -4
  13. package/corpus/core/src/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +15 -17
  14. package/corpus/templates/design/actions/apply-motion-edit.ts +50 -18
  15. package/corpus/templates/design/actions/get-motion-timeline.ts +4 -14
  16. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +156 -12
  17. package/corpus/templates/design/app/components/design/MotionDock.tsx +2 -3
  18. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +217 -75
  19. package/corpus/templates/design/app/components/design/QuestionFlow.tsx +39 -39
  20. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +558 -37
  21. package/corpus/templates/design/app/components/design/bridge/hit-test.bridge.ts +75 -3
  22. package/corpus/templates/design/app/components/design/types.ts +13 -0
  23. package/corpus/templates/design/app/components/layout/Layout.tsx +1 -0
  24. package/corpus/templates/design/app/i18n/zh-TW.ts +17 -0
  25. package/corpus/templates/design/app/i18n-data.ts +245 -0
  26. package/corpus/templates/design/app/pages/DesignEditor.tsx +762 -153
  27. package/corpus/templates/design/changelog/2026-06-30-copying-or-dragging-screen-elements-onto-the-infinite-canvas.md +6 -0
  28. package/corpus/templates/design/changelog/2026-06-30-design-questions-now-use-tighter-editor-typography-and-contr.md +6 -0
  29. package/corpus/templates/design/changelog/2026-06-30-element-drags-can-be-cancelled-with-escape-before-they-commi.md +6 -0
  30. package/corpus/templates/design/changelog/2026-06-30-pending-visual-style-edits-now-warn-before-you-leave-the-edi.md +6 -0
  31. package/corpus/templates/design/changelog/2026-06-30-visual-style-drags-stay-live-while-pending-edits-can-be-appl.md +6 -0
  32. package/corpus/templates/design/changelog/2026-07-01-design-chat-no-longer-shows-a-redundant-context-tab-above-the-composer.md +6 -0
  33. package/corpus/templates/design/changelog/2026-07-01-motion-track-creation-no-longer-fails-in-local-editors.md +6 -0
  34. package/corpus/templates/design/server/plugins/db.ts +10 -0
  35. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  36. package/dist/agent/engine/builder-engine.js +61 -10
  37. package/dist/agent/engine/builder-engine.js.map +1 -1
  38. package/dist/agent/run-manager.d.ts +8 -7
  39. package/dist/agent/run-manager.d.ts.map +1 -1
  40. package/dist/agent/run-manager.js +8 -7
  41. package/dist/agent/run-manager.js.map +1 -1
  42. package/dist/cli/design-connect.d.ts +2 -0
  43. package/dist/cli/design-connect.d.ts.map +1 -1
  44. package/dist/cli/design-connect.js +140 -0
  45. package/dist/cli/design-connect.js.map +1 -1
  46. package/dist/cli/skills.d.ts.map +1 -1
  47. package/dist/cli/skills.js +5 -7
  48. package/dist/cli/skills.js.map +1 -1
  49. package/dist/client/AgentPanel.d.ts +5 -1
  50. package/dist/client/AgentPanel.d.ts.map +1 -1
  51. package/dist/client/AgentPanel.js +4 -4
  52. package/dist/client/AgentPanel.js.map +1 -1
  53. package/dist/client/MultiTabAssistantChat.d.ts +3 -1
  54. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  55. package/dist/client/MultiTabAssistantChat.js +2 -2
  56. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  57. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  58. package/dist/client/agent-chat-adapter.js +37 -14
  59. package/dist/client/agent-chat-adapter.js.map +1 -1
  60. package/dist/client/sse-event-processor.d.ts +14 -1
  61. package/dist/client/sse-event-processor.d.ts.map +1 -1
  62. package/dist/client/sse-event-processor.js +21 -5
  63. package/dist/client/sse-event-processor.js.map +1 -1
  64. package/dist/collab/awareness.d.ts +2 -2
  65. package/dist/collab/awareness.d.ts.map +1 -1
  66. package/dist/collab/routes.d.ts +2 -2
  67. package/dist/file-upload/actions/upload-image.d.ts +2 -2
  68. package/dist/notifications/routes.d.ts +3 -3
  69. package/dist/observability/routes.d.ts +2 -2
  70. package/dist/resources/handlers.d.ts +2 -2
  71. package/dist/server/transcribe-voice.d.ts +1 -1
  72. package/dist/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +15 -17
  73. package/docs/design/durable-agent-runs.md +34 -35
  74. package/package.json +1 -1
  75. package/src/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +15 -17
@@ -187,6 +187,56 @@
187
187
  );
188
188
  }
189
189
 
190
+ function isAbsolutePrimitiveContainer(el: Element | null): boolean {
191
+ if (!el || (el.tagName || "").toLowerCase() !== "div") return false;
192
+ var primitive = (
193
+ el.getAttribute("data-an-primitive") ||
194
+ el.getAttribute("data-agent-native-primitive") ||
195
+ ""
196
+ ).toLowerCase();
197
+ if (primitive !== "rectangle" && primitive !== "rect") return false;
198
+ var cs = window.getComputedStyle(el);
199
+ return cs.position === "absolute" || cs.position === "fixed";
200
+ }
201
+
202
+ function absolutePrimitiveContainerTargetForPoint(
203
+ clientX: number,
204
+ clientY: number,
205
+ ): {
206
+ anchor: Element;
207
+ placement: string;
208
+ axis: string;
209
+ dropMode: string;
210
+ } | null {
211
+ var hits: Element[] = document.elementsFromPoint
212
+ ? document.elementsFromPoint(clientX, clientY)
213
+ : ([document.elementFromPoint(clientX, clientY)] as Element[]);
214
+ var seen: Element[] = [];
215
+ for (var i = 0; i < hits.length; i += 1) {
216
+ var cursor: Element | null = hits[i];
217
+ var candidate: Element | null = null;
218
+ while (cursor && cursor !== document.body) {
219
+ if (isAbsolutePrimitiveContainer(cursor)) {
220
+ candidate = cursor;
221
+ break;
222
+ }
223
+ cursor = cursor.parentElement;
224
+ }
225
+ if (!candidate || seen.indexOf(candidate) !== -1) continue;
226
+ seen.push(candidate);
227
+ if (isOverlayElement(candidate) || isLayerInteractionBlocked(candidate)) {
228
+ continue;
229
+ }
230
+ return {
231
+ anchor: candidate,
232
+ placement: "inside",
233
+ axis: "y",
234
+ dropMode: "absolute-container",
235
+ };
236
+ }
237
+ return null;
238
+ }
239
+
190
240
  // keep in sync with editor-chrome.bridge.ts edgePlacementForRect
191
241
  function edgePlacementForRect(
192
242
  rect: DOMRect,
@@ -236,7 +286,12 @@
236
286
  function resolveHitTarget(
237
287
  clientX: number,
238
288
  clientY: number,
239
- ): { anchor: Element; placement: string; axis: string } | null {
289
+ ): {
290
+ anchor: Element;
291
+ placement: string;
292
+ axis: string;
293
+ dropMode: string;
294
+ } | null {
240
295
  var hit = elementFromEditorPoint(clientX, clientY);
241
296
  if (!hit || hit === document.documentElement) return null;
242
297
 
@@ -256,6 +311,7 @@
256
311
  anchor: cursor,
257
312
  placement: childPointer < childCenter ? "before" : "after",
258
313
  axis: parentAxis,
314
+ dropMode: "flow-insert",
259
315
  };
260
316
  }
261
317
  if (isAutoLayoutElement(cursor) && isContainerDropTarget(cursor)) {
@@ -268,18 +324,32 @@
268
324
  clientY,
269
325
  );
270
326
  if (edgePlacement && parent && isAutoLayoutElement(parent)) {
271
- return { anchor: cursor, placement: edgePlacement, axis: edgeAxis };
327
+ return {
328
+ anchor: cursor,
329
+ placement: edgePlacement,
330
+ axis: edgeAxis,
331
+ dropMode: "flow-insert",
332
+ };
272
333
  }
273
334
  return {
274
335
  anchor: cursor,
275
336
  placement: "inside",
276
337
  axis: parentFlowAxis(cursor),
338
+ dropMode: "flow-insert",
339
+ };
340
+ }
341
+ if (isAbsolutePrimitiveContainer(cursor)) {
342
+ return {
343
+ anchor: cursor,
344
+ placement: "inside",
345
+ axis: "y",
346
+ dropMode: "absolute-container",
277
347
  };
278
348
  }
279
349
  cursor = parent;
280
350
  }
281
351
 
282
- return null;
352
+ return absolutePrimitiveContainerTargetForPoint(clientX, clientY);
283
353
  }
284
354
 
285
355
  function showInsertionGuideFor(
@@ -340,6 +410,7 @@
340
410
  var anchorNodeId: string = result ? getNodeId(result.anchor) : "";
341
411
  var placement: string = result ? result.placement : "inside";
342
412
  var axis: string = result ? result.axis : "y";
413
+ var dropMode: string = result ? result.dropMode : "flow-insert";
343
414
  var anchorRect = result ? result.anchor.getBoundingClientRect() : null;
344
415
  try {
345
416
  (window.parent as Window).postMessage(
@@ -349,6 +420,7 @@
349
420
  anchorNodeId: anchorNodeId,
350
421
  placement: placement,
351
422
  axis: axis,
423
+ dropMode: dropMode,
352
424
  anchorRect: anchorRect
353
425
  ? {
354
426
  left: anchorRect.left,
@@ -1,3 +1,15 @@
1
+ export interface PortableStyleSnapshotNode {
2
+ sourceId?: string;
3
+ path: number[];
4
+ styles: Record<string, string>;
5
+ }
6
+
7
+ export interface PortableStyleSnapshot {
8
+ version: 1;
9
+ rootSourceId?: string;
10
+ nodes: PortableStyleSnapshotNode[];
11
+ }
12
+
1
13
  export interface ElementInfo {
2
14
  tagName: string;
3
15
  componentName?: string;
@@ -6,6 +18,7 @@ export interface ElementInfo {
6
18
  selector?: string;
7
19
  classes: string[];
8
20
  computedStyles: Record<string, string>;
21
+ portableStyleSnapshot?: PortableStyleSnapshot;
9
22
  boundingRect: { x: number; y: number; width: number; height: number };
10
23
  textContent?: string;
11
24
  htmlContent?: string;
@@ -148,6 +148,7 @@ export function Layout({ children }: LayoutProps) {
148
148
  t("chat.suggestionMobile"),
149
149
  ]}
150
150
  scope={designScope}
151
+ showScopeBadge={false}
151
152
  browserTabId={browserTabId}
152
153
  threadFooterSlot={designQuestionsWaitingSlot}
153
154
  >
@@ -410,6 +410,23 @@ const messages = {
410
410
  rolledBack: "已回復",
411
411
  },
412
412
  },
413
+ pendingVisualStyles: {
414
+ applyAria: "套用待處理的視覺樣式編輯",
415
+ applyButton: "套用樣式",
416
+ previewLabel: "待處理的視覺預覽",
417
+ applyWithAgent: "用 Design 代理套用",
418
+ copyPrompt: "將提示複製給您的代理",
419
+ agentMessage: "將待處理的視覺樣式編輯套用到來源。",
420
+ sentToast: "樣式編輯已傳送給 Design 代理",
421
+ copiedToast: "樣式提示已複製",
422
+ leaveTitle: "離開前要套用樣式嗎?",
423
+ leaveDescriptionOne:
424
+ "即時預覽中有 {{count}} 個待處理的視覺樣式編輯。現在離開會捨棄該未套用的樣式變更。",
425
+ leaveDescriptionOther:
426
+ "即時預覽中有 {{count}} 個待處理的視覺樣式編輯。現在離開會捨棄這些未套用的樣式變更。",
427
+ stay: "留在這裡",
428
+ leave: "不套用並離開",
429
+ },
413
430
  capabilities: {
414
431
  "deterministic-style-edit": "安全樣式編輯",
415
432
  "deterministic-class-edit": "安全 class 編輯",
@@ -423,6 +423,23 @@ const enUS = {
423
423
  rolledBack: "Rolled back",
424
424
  },
425
425
  },
426
+ pendingVisualStyles: {
427
+ applyAria: "Apply pending visual style edits",
428
+ applyButton: "Apply styles",
429
+ previewLabel: "Pending visual preview",
430
+ applyWithAgent: "Apply with Design agent",
431
+ copyPrompt: "Copy prompt to your agent",
432
+ agentMessage: "Apply the pending visual style edits to the source.",
433
+ sentToast: "Style edits sent to the Design agent",
434
+ copiedToast: "Style prompt copied",
435
+ leaveTitle: "Apply styles before leaving?",
436
+ leaveDescriptionOne:
437
+ "You have {{count}} pending visual style edit in the live preview. Leaving now will discard that unapplied style change.",
438
+ leaveDescriptionOther:
439
+ "You have {{count}} pending visual style edits in the live preview. Leaving now will discard those unapplied style changes.",
440
+ stay: "Stay here",
441
+ leave: "Leave without applying",
442
+ },
426
443
  capabilities: {
427
444
  "deterministic-style-edit": "Safe style edit",
428
445
  "deterministic-class-edit": "Safe class edit",
@@ -9500,6 +9517,224 @@ const designLocalSourceEditOverrides = {
9500
9517
  },
9501
9518
  } satisfies Record<Exclude<LocaleCode, "en-US">, PartialMessages>;
9502
9519
 
9520
+ const designPendingVisualStyleOverrides = {
9521
+ "zh-TW": {
9522
+ designEditor: {
9523
+ pendingVisualStyles: {
9524
+ applyAria: "套用待處理的視覺樣式編輯",
9525
+ applyButton: "套用樣式",
9526
+ previewLabel: "待處理的視覺預覽",
9527
+ applyWithAgent: "用 Design 代理套用",
9528
+ copyPrompt: "將提示複製給您的代理",
9529
+ agentMessage: "將待處理的視覺樣式編輯套用到來源。",
9530
+ sentToast: "樣式編輯已傳送給 Design 代理",
9531
+ copiedToast: "樣式提示已複製",
9532
+ leaveTitle: "離開前要套用樣式嗎?",
9533
+ leaveDescriptionOne:
9534
+ "即時預覽中有 {{count}} 個待處理的視覺樣式編輯。現在離開會捨棄該未套用的樣式變更。",
9535
+ leaveDescriptionOther:
9536
+ "即時預覽中有 {{count}} 個待處理的視覺樣式編輯。現在離開會捨棄這些未套用的樣式變更。",
9537
+ stay: "留在這裡",
9538
+ leave: "不套用並離開",
9539
+ },
9540
+ },
9541
+ },
9542
+ "zh-CN": {
9543
+ designEditor: {
9544
+ pendingVisualStyles: {
9545
+ applyAria: "应用待处理的视觉样式编辑",
9546
+ applyButton: "应用样式",
9547
+ previewLabel: "待处理的视觉预览",
9548
+ applyWithAgent: "用 Design 代理应用",
9549
+ copyPrompt: "将提示复制给你的代理",
9550
+ agentMessage: "将待处理的视觉样式编辑应用到源文件。",
9551
+ sentToast: "样式编辑已发送给 Design 代理",
9552
+ copiedToast: "样式提示已复制",
9553
+ leaveTitle: "离开前应用样式?",
9554
+ leaveDescriptionOne:
9555
+ "实时预览中有 {{count}} 个待处理的视觉样式编辑。现在离开会丢弃这个未应用的样式更改。",
9556
+ leaveDescriptionOther:
9557
+ "实时预览中有 {{count}} 个待处理的视觉样式编辑。现在离开会丢弃这些未应用的样式更改。",
9558
+ stay: "留在这里",
9559
+ leave: "不应用并离开",
9560
+ },
9561
+ },
9562
+ },
9563
+ "es-ES": {
9564
+ designEditor: {
9565
+ pendingVisualStyles: {
9566
+ applyAria: "Aplicar ediciones visuales de estilo pendientes",
9567
+ applyButton: "Aplicar estilos",
9568
+ previewLabel: "Vista previa visual pendiente",
9569
+ applyWithAgent: "Aplicar con el agente de Design",
9570
+ copyPrompt: "Copiar prompt a tu agente",
9571
+ agentMessage:
9572
+ "Aplica las ediciones visuales de estilo pendientes al código fuente.",
9573
+ sentToast: "Ediciones de estilo enviadas al agente de Design",
9574
+ copiedToast: "Prompt de estilo copiado",
9575
+ leaveTitle: "¿Aplicar estilos antes de salir?",
9576
+ leaveDescriptionOne:
9577
+ "Tienes {{count}} edición visual de estilo pendiente en la vista previa en vivo. Si sales ahora, se descartará ese cambio de estilo sin aplicar.",
9578
+ leaveDescriptionOther:
9579
+ "Tienes {{count}} ediciones visuales de estilo pendientes en la vista previa en vivo. Si sales ahora, se descartarán esos cambios de estilo sin aplicar.",
9580
+ stay: "Quedarse aquí",
9581
+ leave: "Salir sin aplicar",
9582
+ },
9583
+ },
9584
+ },
9585
+ "fr-FR": {
9586
+ designEditor: {
9587
+ pendingVisualStyles: {
9588
+ applyAria: "Appliquer les modifications visuelles de style en attente",
9589
+ applyButton: "Appliquer les styles",
9590
+ previewLabel: "Aperçu visuel en attente",
9591
+ applyWithAgent: "Appliquer avec l’agent Design",
9592
+ copyPrompt: "Copier le prompt vers votre agent",
9593
+ agentMessage:
9594
+ "Appliquez les modifications visuelles de style en attente à la source.",
9595
+ sentToast: "Modifications de style envoyées à l’agent Design",
9596
+ copiedToast: "Prompt de style copié",
9597
+ leaveTitle: "Appliquer les styles avant de quitter ?",
9598
+ leaveDescriptionOne:
9599
+ "Vous avez {{count}} modification visuelle de style en attente dans l’aperçu en direct. Quitter maintenant supprimera cette modification non appliquée.",
9600
+ leaveDescriptionOther:
9601
+ "Vous avez {{count}} modifications visuelles de style en attente dans l’aperçu en direct. Quitter maintenant supprimera ces modifications non appliquées.",
9602
+ stay: "Rester ici",
9603
+ leave: "Quitter sans appliquer",
9604
+ },
9605
+ },
9606
+ },
9607
+ "de-DE": {
9608
+ designEditor: {
9609
+ pendingVisualStyles: {
9610
+ applyAria: "Ausstehende visuelle Stiländerungen anwenden",
9611
+ applyButton: "Stile anwenden",
9612
+ previewLabel: "Ausstehende visuelle Vorschau",
9613
+ applyWithAgent: "Mit Design-Agent anwenden",
9614
+ copyPrompt: "Prompt an deinen Agent kopieren",
9615
+ agentMessage:
9616
+ "Wende die ausstehenden visuellen Stiländerungen auf die Quelle an.",
9617
+ sentToast: "Stiländerungen an den Design-Agent gesendet",
9618
+ copiedToast: "Stil-Prompt kopiert",
9619
+ leaveTitle: "Stile vor dem Verlassen anwenden?",
9620
+ leaveDescriptionOne:
9621
+ "In der Live-Vorschau gibt es {{count}} ausstehende visuelle Stiländerung. Wenn du jetzt gehst, wird diese nicht angewendete Stiländerung verworfen.",
9622
+ leaveDescriptionOther:
9623
+ "In der Live-Vorschau gibt es {{count}} ausstehende visuelle Stiländerungen. Wenn du jetzt gehst, werden diese nicht angewendeten Stiländerungen verworfen.",
9624
+ stay: "Hier bleiben",
9625
+ leave: "Ohne Anwenden verlassen",
9626
+ },
9627
+ },
9628
+ },
9629
+ "ja-JP": {
9630
+ designEditor: {
9631
+ pendingVisualStyles: {
9632
+ applyAria: "保留中のビジュアルスタイル編集を適用",
9633
+ applyButton: "スタイルを適用",
9634
+ previewLabel: "保留中のビジュアルプレビュー",
9635
+ applyWithAgent: "Design エージェントで適用",
9636
+ copyPrompt: "エージェントにプロンプトをコピー",
9637
+ agentMessage:
9638
+ "保留中のビジュアルスタイル編集をソースに適用してください。",
9639
+ sentToast: "スタイル編集を Design エージェントに送信しました",
9640
+ copiedToast: "スタイルプロンプトをコピーしました",
9641
+ leaveTitle: "離れる前にスタイルを適用しますか?",
9642
+ leaveDescriptionOne:
9643
+ "ライブプレビューに {{count}} 件の保留中のビジュアルスタイル編集があります。今離れると、未適用のスタイル変更は破棄されます。",
9644
+ leaveDescriptionOther:
9645
+ "ライブプレビューに {{count}} 件の保留中のビジュアルスタイル編集があります。今離れると、未適用のスタイル変更は破棄されます。",
9646
+ stay: "ここに留まる",
9647
+ leave: "適用せずに離れる",
9648
+ },
9649
+ },
9650
+ },
9651
+ "ko-KR": {
9652
+ designEditor: {
9653
+ pendingVisualStyles: {
9654
+ applyAria: "보류 중인 시각 스타일 편집 적용",
9655
+ applyButton: "스타일 적용",
9656
+ previewLabel: "보류 중인 시각 미리보기",
9657
+ applyWithAgent: "Design 에이전트로 적용",
9658
+ copyPrompt: "에이전트에 프롬프트 복사",
9659
+ agentMessage: "보류 중인 시각 스타일 편집을 소스에 적용하세요.",
9660
+ sentToast: "스타일 편집을 Design 에이전트로 보냈습니다",
9661
+ copiedToast: "스타일 프롬프트가 복사되었습니다",
9662
+ leaveTitle: "나가기 전에 스타일을 적용할까요?",
9663
+ leaveDescriptionOne:
9664
+ "라이브 미리보기에 보류 중인 시각 스타일 편집이 {{count}}개 있습니다. 지금 나가면 적용되지 않은 스타일 변경이 삭제됩니다.",
9665
+ leaveDescriptionOther:
9666
+ "라이브 미리보기에 보류 중인 시각 스타일 편집이 {{count}}개 있습니다. 지금 나가면 적용되지 않은 스타일 변경이 삭제됩니다.",
9667
+ stay: "여기에 머물기",
9668
+ leave: "적용하지 않고 나가기",
9669
+ },
9670
+ },
9671
+ },
9672
+ "pt-BR": {
9673
+ designEditor: {
9674
+ pendingVisualStyles: {
9675
+ applyAria: "Aplicar edições visuais de estilo pendentes",
9676
+ applyButton: "Aplicar estilos",
9677
+ previewLabel: "Prévia visual pendente",
9678
+ applyWithAgent: "Aplicar com o agente Design",
9679
+ copyPrompt: "Copiar prompt para seu agente",
9680
+ agentMessage:
9681
+ "Aplique as edições visuais de estilo pendentes à origem.",
9682
+ sentToast: "Edições de estilo enviadas ao agente Design",
9683
+ copiedToast: "Prompt de estilo copiado",
9684
+ leaveTitle: "Aplicar estilos antes de sair?",
9685
+ leaveDescriptionOne:
9686
+ "Você tem {{count}} edição visual de estilo pendente na prévia ao vivo. Sair agora descartará essa alteração de estilo não aplicada.",
9687
+ leaveDescriptionOther:
9688
+ "Você tem {{count}} edições visuais de estilo pendentes na prévia ao vivo. Sair agora descartará essas alterações de estilo não aplicadas.",
9689
+ stay: "Ficar aqui",
9690
+ leave: "Sair sem aplicar",
9691
+ },
9692
+ },
9693
+ },
9694
+ "hi-IN": {
9695
+ designEditor: {
9696
+ pendingVisualStyles: {
9697
+ applyAria: "लंबित visual style edits लागू करें",
9698
+ applyButton: "Styles लागू करें",
9699
+ previewLabel: "लंबित visual preview",
9700
+ applyWithAgent: "Design agent से लागू करें",
9701
+ copyPrompt: "Prompt अपने agent को कॉपी करें",
9702
+ agentMessage: "लंबित visual style edits को source पर लागू करें।",
9703
+ sentToast: "Style edits Design agent को भेजे गए",
9704
+ copiedToast: "Style prompt कॉपी हुआ",
9705
+ leaveTitle: "छोड़ने से पहले styles लागू करें?",
9706
+ leaveDescriptionOne:
9707
+ "Live preview में {{count}} लंबित visual style edit है। अभी छोड़ने पर वह unapplied style change हट जाएगा।",
9708
+ leaveDescriptionOther:
9709
+ "Live preview में {{count}} लंबित visual style edits हैं। अभी छोड़ने पर वे unapplied style changes हट जाएंगे।",
9710
+ stay: "यहीं रहें",
9711
+ leave: "बिना लागू किए छोड़ें",
9712
+ },
9713
+ },
9714
+ },
9715
+ "ar-SA": {
9716
+ designEditor: {
9717
+ pendingVisualStyles: {
9718
+ applyAria: "تطبيق تعديلات النمط المرئية المعلقة",
9719
+ applyButton: "تطبيق الأنماط",
9720
+ previewLabel: "معاينة مرئية معلقة",
9721
+ applyWithAgent: "تطبيق عبر وكيل Design",
9722
+ copyPrompt: "نسخ الموجه إلى وكيلك",
9723
+ agentMessage: "طبّق تعديلات النمط المرئية المعلقة على المصدر.",
9724
+ sentToast: "تم إرسال تعديلات النمط إلى وكيل Design",
9725
+ copiedToast: "تم نسخ موجه النمط",
9726
+ leaveTitle: "تطبيق الأنماط قبل المغادرة؟",
9727
+ leaveDescriptionOne:
9728
+ "لديك {{count}} تعديل نمط مرئي معلق في المعاينة المباشرة. ستؤدي المغادرة الآن إلى تجاهل تغيير النمط غير المطبق.",
9729
+ leaveDescriptionOther:
9730
+ "لديك {{count}} تعديلات نمط مرئية معلقة في المعاينة المباشرة. ستؤدي المغادرة الآن إلى تجاهل تغييرات النمط غير المطبقة.",
9731
+ stay: "البقاء هنا",
9732
+ leave: "المغادرة دون تطبيق",
9733
+ },
9734
+ },
9735
+ },
9736
+ } satisfies Record<Exclude<LocaleCode, "en-US">, PartialMessages>;
9737
+
9503
9738
  const designLeftRailOverrides = {
9504
9739
  "zh-TW": {
9505
9740
  designEditor: {
@@ -9818,6 +10053,7 @@ export const messagesByLocale = {
9818
10053
  designPublicShareOverrides["zh-TW"],
9819
10054
  designVisualEditOverrides["zh-TW"],
9820
10055
  designLocalSourceEditOverrides["zh-TW"],
10056
+ designPendingVisualStyleOverrides["zh-TW"],
9821
10057
  ),
9822
10058
  ),
9823
10059
  "zh-CN": mergeMessages(
@@ -9833,6 +10069,7 @@ export const messagesByLocale = {
9833
10069
  designPublicShareOverrides["zh-CN"],
9834
10070
  designVisualEditOverrides["zh-CN"],
9835
10071
  designLocalSourceEditOverrides["zh-CN"],
10072
+ designPendingVisualStyleOverrides["zh-CN"],
9836
10073
  {
9837
10074
  root: {
9838
10075
  commandActions: "操作",
@@ -9887,6 +10124,7 @@ export const messagesByLocale = {
9887
10124
  designPublicShareOverrides["es-ES"],
9888
10125
  designVisualEditOverrides["es-ES"],
9889
10126
  designLocalSourceEditOverrides["es-ES"],
10127
+ designPendingVisualStyleOverrides["es-ES"],
9890
10128
  {
9891
10129
  root: {
9892
10130
  commandActions: "Acciones",
@@ -9941,6 +10179,7 @@ export const messagesByLocale = {
9941
10179
  designPublicShareOverrides["fr-FR"],
9942
10180
  designVisualEditOverrides["fr-FR"],
9943
10181
  designLocalSourceEditOverrides["fr-FR"],
10182
+ designPendingVisualStyleOverrides["fr-FR"],
9944
10183
  {
9945
10184
  root: {
9946
10185
  commandActions: "Actions",
@@ -9995,6 +10234,7 @@ export const messagesByLocale = {
9995
10234
  designPublicShareOverrides["de-DE"],
9996
10235
  designVisualEditOverrides["de-DE"],
9997
10236
  designLocalSourceEditOverrides["de-DE"],
10237
+ designPendingVisualStyleOverrides["de-DE"],
9998
10238
  {
9999
10239
  root: {
10000
10240
  commandActions: "Aktionen",
@@ -10049,6 +10289,7 @@ export const messagesByLocale = {
10049
10289
  designPublicShareOverrides["ja-JP"],
10050
10290
  designVisualEditOverrides["ja-JP"],
10051
10291
  designLocalSourceEditOverrides["ja-JP"],
10292
+ designPendingVisualStyleOverrides["ja-JP"],
10052
10293
  {
10053
10294
  root: {
10054
10295
  commandActions: "操作",
@@ -10104,6 +10345,7 @@ export const messagesByLocale = {
10104
10345
  designPublicShareOverrides["ko-KR"],
10105
10346
  designVisualEditOverrides["ko-KR"],
10106
10347
  designLocalSourceEditOverrides["ko-KR"],
10348
+ designPendingVisualStyleOverrides["ko-KR"],
10107
10349
  {
10108
10350
  root: {
10109
10351
  commandActions: "작업",
@@ -10157,6 +10399,7 @@ export const messagesByLocale = {
10157
10399
  designPublicShareOverrides["pt-BR"],
10158
10400
  designVisualEditOverrides["pt-BR"],
10159
10401
  designLocalSourceEditOverrides["pt-BR"],
10402
+ designPendingVisualStyleOverrides["pt-BR"],
10160
10403
  {
10161
10404
  root: {
10162
10405
  commandActions: "Ações",
@@ -10211,6 +10454,7 @@ export const messagesByLocale = {
10211
10454
  designPublicShareOverrides["hi-IN"],
10212
10455
  designVisualEditOverrides["hi-IN"],
10213
10456
  designLocalSourceEditOverrides["hi-IN"],
10457
+ designPendingVisualStyleOverrides["hi-IN"],
10214
10458
  {
10215
10459
  root: {
10216
10460
  commandActions: "क्रियाएं",
@@ -10265,6 +10509,7 @@ export const messagesByLocale = {
10265
10509
  designPublicShareOverrides["ar-SA"],
10266
10510
  designVisualEditOverrides["ar-SA"],
10267
10511
  designLocalSourceEditOverrides["ar-SA"],
10512
+ designPendingVisualStyleOverrides["ar-SA"],
10268
10513
  {
10269
10514
  root: {
10270
10515
  commandActions: "الإجراءات",