Skip to content

Commit 7db6875

Browse files
committed
fix(export): own disclosure class, honest destination docs
The Advanced disclosure no longer borrows the background pane's bgDisclosure class. The docs stop promising Social a half-size file, describe Studio as the smallest clip at the project's ratio, and the editor-shell row names the two native export calls.
1 parent 4526de2 commit 7db6875

11 files changed

Lines changed: 27 additions & 12 deletions

File tree

‎src/components/ai-edition/ExportDialog.tsx‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ interface ExportChoice {
161161
* picked while the settings still match it. */
162162
const DESTINATIONS: Array<{ labelKey: string; set: Partial<ExportChoice> }> = [
163163
{ labelKey: "destinationWeb", set: { format: "mp4", quality: "good", fps: 60, codec: "h264" } },
164-
// Half the frames at the same bits per frame: half the file.
164+
// Half the frames at the same bits per frame: half the bitrate.
165165
{
166166
labelKey: "destinationSocial",
167167
set: { format: "mp4", quality: "good", fps: 30, codec: "h264" },
@@ -594,8 +594,7 @@ export function ExportDialog({ open, onClose, document }: ExportDialogProps) {
594594

595595
<button
596596
type="button"
597-
className={styles.bgDisclosure}
598-
style={{ margin: 0, alignSelf: "flex-start" }}
597+
className={styles.exportAdvanced}
599598
aria-expanded={advancedOpen}
600599
onClick={() => setAdvancedOpen((open) => !open)}
601600
>

‎src/components/ai-edition/NewEditorShell.module.css‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1328,6 +1328,22 @@ textarea.control {
13281328
.bgDisclosure:hover { color: var(--fg); }
13291329
.bgDisclosure svg { transition: transform var(--motion-fast) var(--ease); }
13301330
.bgDisclosure[aria-expanded="true"] svg { transform: rotate(180deg); }
1331+
/* The export dialog's "Advanced" disclosure. Its own class: it must not ride on a pane's. */
1332+
.exportAdvanced {
1333+
display: inline-flex;
1334+
align-self: flex-start;
1335+
align-items: center;
1336+
gap: 4px;
1337+
padding: 0;
1338+
border: 0;
1339+
background: transparent;
1340+
color: var(--fg-2);
1341+
font: 500 13px/1.2 var(--font-body);
1342+
cursor: pointer;
1343+
}
1344+
.exportAdvanced:hover { color: var(--fg); }
1345+
.exportAdvanced svg { transition: transform var(--motion-fast) var(--ease); }
1346+
.exportAdvanced[aria-expanded="true"] svg { transform: rotate(180deg); }
13311347
.bgThumb:hover { transform: translateY(-1px); }
13321348
.bgThumb.isActive {
13331349
border-color: var(--brand);

‎technical-documentation/architecture/editor-shell.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ of those are local React state, with the document itself read through
6060
| **Floating inspector** | `src/components/ai-edition/v4/FloatingInspector.tsx` | Floating facet rail over the stage; the open panel either shows the `FacetBody` for the current facet (`effects` / `layout` / `audio` / `cursor` / `captions` / `transcript`) or, when a region is selected, a `SelectionPane` (`:434`) that edits the selected pill by id. The "pencil" rail button opens `EditClipModal` for crop + trim. |
6161
| **Left chat column** (`ChatStripPanel`) | `src/components/ai-edition/LeftPanel.tsx` | Only mounted when `mode === "edit"` and `chatOpen` is true (`NewEditorShell.tsx` `:1191-1195`). Sends user messages to the LLM via IPC. Resize handle is `v4.chatResizeHandle`; width persists in `localStorage` as `os-editor-chat-width`. |
6262
| **Modals** | `src/components/ai-edition/Modals.tsx` | `OpenProjectModal`, `NewProjectModal`, `EditClipModal` (per-clip crop + in/out), `UnsavedChangesModal`. Mounted at the shell level (`:1333-1385`) so every trigger site reuses the same instance. |
63-
| **Export dialog** | `src/components/ai-edition/ExportDialog.tsx` | Named destinations (Web / YouTube, Social, Studio, README GIF) that set format / quality / frame-rate / codec / size together, all of which stay under **Advanced**; calls `exportAxcutDocument` (GIF path, WebCodecs) or `exportMultiNative` (MP4 path, native D3D compositor). The MP4 path is the one that goes through `src/lib/ai-edition/exporter/documentExporter.ts`'s `projectRegionsToSourceTime` and the multi-clip native bridge. |
63+
| **Export dialog** | `src/components/ai-edition/ExportDialog.tsx` | Named destinations (Web / YouTube, Social, Studio, README GIF) that set format / quality / frame-rate / codec / size together, all of which stay under **Advanced**. Both formats go through the native compositor with the same clip list (`resolveVisibleClips`) and scene (`buildSceneDescription`): `exportGifNative` for GIF, `exportMultiNative` for MP4. |
6464
| **Captions pane** | `src/components/ai-edition/CaptionsPane.tsx` | Mounted as a facet body from `FloatingInspector.tsx` (`:1062`). Controls caption appearance + translations; the cues themselves are a derived view over `document.transcripts` (see [`src/lib/ai-edition/captions/`](../../src/lib/ai-edition/captions/)). |
6565

6666
## Modes and facets

‎website/docs/export.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ keywords:
1717

1818
Click **Export** in the top bar to open the export dialog.
1919

20-
Pick a **destination** first: **Web / YouTube** (MP4, 1080p, 60 fps), **Social** (the same at 30 fps, half the file size), **Studio** (MP4 at the recording's own resolution, 60 fps) or **README GIF** (a 480p GIF at 15 fps). A destination never changes the project's aspect ratio. Everything below sits under **Advanced**.
20+
Pick a **destination** first: **Web / YouTube** (MP4, 1080p, 60 fps), **Social** (the same at 30 fps, at a lower bitrate), **Studio** (MP4 at the smallest clip's own resolution, fitted to the project's aspect ratio, 60 fps) or **README GIF** (a 480p GIF at 15 fps). A destination never changes the project's aspect ratio. Everything below sits under **Advanced**.
2121

2222
## Formats
2323

‎website/i18n/de/docusaurus-plugin-content-docs/current/export.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ keywords:
1717

1818
Klicke in der oberen Leiste auf **Export**, um den Exportdialog zu öffnen.
1919

20-
Wähle zuerst ein **Ziel**: **Web / YouTube** (MP4, 1080p, 60 fps), **Social Media** (dasselbe mit 30 fps, halb so große Datei), **Studio** (MP4 in der Auflösung der Aufnahme, 60 fps) oder **README-GIF** (ein 480p-GIF mit 15 fps). Ein Ziel ändert nie das Seitenverhältnis des Projekts. Alles Folgende liegt unter **Erweitert**.
20+
Wähle zuerst ein **Ziel**: **Web / YouTube** (MP4, 1080p, 60 fps), **Social Media** (dasselbe mit 30 fps und niedrigerer Bitrate), **Studio** (MP4 in der Auflösung des kleinsten Clips, an das Seitenverhältnis des Projekts angepasst, 60 fps) oder **README-GIF** (ein 480p-GIF mit 15 fps). Ein Ziel ändert nie das Seitenverhältnis des Projekts. Alles Folgende liegt unter **Erweitert**.
2121

2222
## Formate {#formats}
2323

‎website/i18n/es/docusaurus-plugin-content-docs/current/export.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ keywords:
1717

1818
Haz clic en **Exportar** en la barra superior para abrir el cuadro de diálogo de exportación.
1919

20-
Elige primero un **destino**: **Web / YouTube** (MP4, 1080p, 60 fps), **Redes sociales** (lo mismo a 30 fps, un archivo de la mitad de tamaño), **Estudio** (MP4 a la resolución de la grabación, 60 fps) o **GIF para README** (un GIF de 480p a 15 fps). Un destino nunca cambia la relación de aspecto del proyecto. Todo lo que sigue está en **Avanzado**.
20+
Elige primero un **destino**: **Web / YouTube** (MP4, 1080p, 60 fps), **Redes sociales** (lo mismo a 30 fps, con una tasa de bits menor), **Estudio** (MP4 a la resolución del clip más pequeño, ajustada a la relación de aspecto del proyecto, 60 fps) o **GIF para README** (un GIF de 480p a 15 fps). Un destino nunca cambia la relación de aspecto del proyecto. Todo lo que sigue está en **Avanzado**.
2121

2222
## Formatos {#formats}
2323

‎website/i18n/fr/docusaurus-plugin-content-docs/current/export.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ keywords:
1717

1818
Cliquez sur **Exporter** dans la barre supérieure pour ouvrir la fenêtre d'export.
1919

20-
Choisissez d'abord une **destination** : **Web / YouTube** (MP4, 1080p, 60 fps), **Réseaux sociaux** (la même chose à 30 fps, un fichier deux fois plus léger), **Studio** (MP4 à la résolution de l'enregistrement, 60 fps) ou **GIF pour README** (un GIF 480p à 15 fps). Une destination ne change jamais le ratio du projet. Tout ce qui suit se trouve sous **Avancé**.
20+
Choisissez d'abord une **destination** : **Web / YouTube** (MP4, 1080p, 60 fps), **Réseaux sociaux** (la même chose à 30 fps, à un débit plus faible), **Studio** (MP4 à la résolution du plus petit clip, ajustée au ratio du projet, 60 fps) ou **GIF pour README** (un GIF 480p à 15 fps). Une destination ne change jamais le ratio du projet. Tout ce qui suit se trouve sous **Avancé**.
2121

2222
## Formats {#formats}
2323

‎website/i18n/ja/docusaurus-plugin-content-docs/current/export.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ keywords:
1717

1818
トップバーの**エクスポート**をクリックすると、エクスポートのダイアログが開きます。
1919

20-
まず**書き出し先**を選びます。**Web / YouTube**(MP4、1080p、60 fps)、**SNS**(同じ内容を 30 fps で。ファイルサイズは半分)、**スタジオ**(録画そのままの解像度の MP4、60 fps)、**README 用 GIF**(480p、15 fps の GIF)。書き出し先を選んでもプロジェクトのアスペクト比は変わりません。以下の設定はすべて**詳細設定**の中にあります。
20+
まず**書き出し先**を選びます。**Web / YouTube**(MP4、1080p、60 fps)、**SNS**(同じ内容を 30 fps で、より低いビットレートで)、**スタジオ**(いちばん小さいクリップの解像度をプロジェクトのアスペクト比に合わせた MP4、60 fps)、**README 用 GIF**(480p、15 fps の GIF)。書き出し先を選んでもプロジェクトのアスペクト比は変わりません。以下の設定はすべて**詳細設定**の中にあります。
2121

2222
## 形式 {#formats}
2323

‎website/i18n/pt-BR/docusaurus-plugin-content-docs/current/export.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ keywords:
1717

1818
Clique em **Exportar** na barra superior para abrir a caixa de diálogo de exportação.
1919

20-
Escolha primeiro um **destino**: **Web / YouTube** (MP4, 1080p, 60 fps), **Redes sociais** (o mesmo a 30 fps, arquivo com metade do tamanho), **Estúdio** (MP4 na resolução da gravação, 60 fps) ou **GIF para README** (um GIF de 480p a 15 fps). Um destino nunca muda a proporção do projeto. Tudo o que vem a seguir fica em **Avançado**.
20+
Escolha primeiro um **destino**: **Web / YouTube** (MP4, 1080p, 60 fps), **Redes sociais** (o mesmo a 30 fps, com uma taxa de bits menor), **Estúdio** (MP4 na resolução do menor clipe, ajustada à proporção do projeto, 60 fps) ou **GIF para README** (um GIF de 480p a 15 fps). Um destino nunca muda a proporção do projeto. Tudo o que vem a seguir fica em **Avançado**.
2121

2222
## Formatos {#formats}
2323

‎website/i18n/zh-CN/docusaurus-plugin-content-docs/current/export.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ keywords:
1717

1818
点击顶栏中的**导出**,打开导出对话框。
1919

20-
先选择一个**导出用途**:**网页 / YouTube**(MP4,1080p,60 fps)、**社交媒体**(同样的画面,30 fps,文件大小减半)、**工作室**(按录制原始分辨率导出的 MP4,60 fps)或 **README GIF**(480p、15 fps 的 GIF)。导出用途不会改变项目的画面比例。以下所有设置都在**高级**中。
20+
先选择一个**导出用途**:**网页 / YouTube**(MP4,1080p,60 fps)、**社交媒体**(同样的画面,30 fps,码率更低)、**工作室**(按最小片段的分辨率并适配项目画面比例导出的 MP4,60 fps)或 **README GIF**(480p、15 fps 的 GIF)。导出用途不会改变项目的画面比例。以下所有设置都在**高级**中。
2121

2222
## 格式 {#formats}
2323

0 commit comments

Comments
 (0)