feat: last gaps on tailwind migration

This commit is contained in:
2026-05-04 13:00:42 +02:00
parent 4ab0bc7b4e
commit 7756d9f83c
8 changed files with 81 additions and 81 deletions

View File

@@ -311,9 +311,9 @@
height: auto; height: auto;
} }
.post-editor.editor, .post-editor,
.scripts-view-shell.editor, .scripts-view-shell,
.templates-view-shell.editor { .templates-view-shell {
flex: 1; flex: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -371,8 +371,8 @@
} }
.post-editor .status-badge, .post-editor .status-badge,
.scripts-view-shell.editor .status-badge, .scripts-view-shell .status-badge,
.templates-view-shell.editor .status-badge { .templates-view-shell .status-badge {
padding: 2px 8px; padding: 2px 8px;
border-radius: 10px; border-radius: 10px;
font-size: 11px; font-size: 11px;
@@ -381,22 +381,22 @@
} }
.post-editor .status-badge.status-draft, .post-editor .status-badge.status-draft,
.scripts-view-shell.editor .status-badge.status-draft, .scripts-view-shell .status-badge.status-draft,
.templates-view-shell.editor .status-badge.status-draft { .templates-view-shell .status-badge.status-draft {
background-color: rgba(204, 167, 0, 0.2); background-color: rgba(204, 167, 0, 0.2);
color: var(--vscode-notificationsWarningIcon-foreground, var(--vscode-editorWarning-foreground)); color: var(--vscode-notificationsWarningIcon-foreground, var(--vscode-editorWarning-foreground));
} }
.post-editor .status-badge.status-published, .post-editor .status-badge.status-published,
.scripts-view-shell.editor .status-badge.status-published, .scripts-view-shell .status-badge.status-published,
.templates-view-shell.editor .status-badge.status-published { .templates-view-shell .status-badge.status-published {
background-color: rgba(115, 201, 145, 0.2); background-color: rgba(115, 201, 145, 0.2);
color: var(--vscode-testing-iconPassed); color: var(--vscode-testing-iconPassed);
} }
.post-editor .status-badge.status-archived, .post-editor .status-badge.status-archived,
.scripts-view-shell.editor .status-badge.status-archived, .scripts-view-shell .status-badge.status-archived,
.templates-view-shell.editor .status-badge.status-archived { .templates-view-shell .status-badge.status-archived {
background-color: rgba(133, 133, 133, 0.2); background-color: rgba(133, 133, 133, 0.2);
color: var(--vscode-descriptionForeground); color: var(--vscode-descriptionForeground);
} }
@@ -927,8 +927,8 @@
@media (max-width: 980px) { @media (max-width: 980px) {
.post-editor .editor-header, .post-editor .editor-header,
.scripts-view-shell.editor .editor-header, .scripts-view-shell .ui-editor-header,
.templates-view-shell.editor .editor-header, .templates-view-shell .ui-editor-header,
.post-editor .metadata-toggle-header, .post-editor .metadata-toggle-header,
.post-editor .editor-toolbar { .post-editor .editor-toolbar {
display: flex; display: flex;
@@ -947,9 +947,9 @@
} }
.post-editor .editor-toolbar-right, .post-editor .editor-toolbar-right,
.post-editor .editor-actions, .post-editor .ui-editor-actions,
.scripts-view-shell.editor .editor-actions, .scripts-view-shell .ui-editor-actions,
.templates-view-shell.editor .editor-actions { .templates-view-shell .ui-editor-actions {
justify-content: flex-start; justify-content: flex-start;
} }
} }

View File

@@ -3,12 +3,12 @@
font-size: 10px; font-size: 10px;
} }
[data-testid="media-editor"] .editor-actions button { [data-testid="media-editor"] .ui-editor-actions button {
padding: 4px 10px; padding: 4px 10px;
font-size: 12px; font-size: 12px;
} }
[data-testid="media-editor"] .editor-actions button.danger:hover { [data-testid="media-editor"] .ui-editor-actions button.danger:hover {
background-color: var(--vscode-notificationsErrorIcon-foreground); background-color: var(--vscode-notificationsErrorIcon-foreground);
} }

View File

@@ -1,18 +1,18 @@
<div class="media-editor editor ui-editor-shell flex h-full min-h-0 flex-col" data-testid="media-editor"> <div class="media-editor ui-editor-shell flex h-full min-h-0 flex-col" data-testid="media-editor">
<div class="editor-header ui-editor-header flex shrink-0 items-start justify-between gap-3"> <div class="editor-header ui-editor-header flex shrink-0 items-start justify-between gap-3">
<div class="editor-tabs flex min-w-0 flex-1 overflow-hidden"> <div class="flex min-w-0 flex-1 overflow-hidden">
<div class={[ <div class={[
"editor-tab ui-tab ui-tab-active ui-editor-tab-current active inline-flex max-w-full items-center gap-2 overflow-hidden px-3 py-2", "ui-tab ui-tab-active ui-editor-tab-current inline-flex max-w-full items-center gap-2 overflow-hidden px-3 py-2",
if(@media_editor.dirty?, do: "dirty") if(@media_editor.dirty?, do: "dirty")
]}> ]}>
<span class="editor-tab-title truncate" data-testid="editor-title"><%= @media_editor.display_title %></span> <span class="truncate" data-testid="editor-title"><%= @media_editor.display_title %></span>
<%= if @media_editor.dirty? do %> <%= if @media_editor.dirty? do %>
<span class="editor-tab-dirty" title={dgettext("ui", "Unsaved")}>●</span> <span class="editor-tab-dirty" title={dgettext("ui", "Unsaved")}>●</span>
<% end %> <% end %>
</div> </div>
</div> </div>
<div class="editor-actions ui-editor-actions flex flex-wrap items-center justify-end gap-2"> <div class="ui-editor-actions flex flex-wrap items-center justify-end gap-2">
<%= if @media_editor.save_state in [:dirty, :saved] do %> <%= if @media_editor.save_state in [:dirty, :saved] do %>
<span class="auto-save-indicator"><%= media_editor_save_state_label(@media_editor.save_state) %></span> <span class="auto-save-indicator"><%= media_editor_save_state_label(@media_editor.save_state) %></span>
<% end %> <% end %>

View File

@@ -1,15 +1,15 @@
<div class="post-editor editor ui-editor-shell flex h-full min-h-0 flex-col" data-testid="post-editor"> <div class="post-editor ui-editor-shell flex h-full min-h-0 flex-col" data-testid="post-editor">
<div class="editor-header ui-editor-header flex shrink-0 items-start justify-between gap-3"> <div class="editor-header ui-editor-header flex shrink-0 items-start justify-between gap-3">
<div class="editor-tabs flex min-w-0 flex-1 overflow-hidden"> <div class="flex min-w-0 flex-1 overflow-hidden">
<div class={["editor-tab ui-tab ui-tab-active ui-editor-tab-current active inline-flex max-w-full items-center gap-2 overflow-hidden px-3 py-2", if(@post_editor.dirty?, do: "dirty")]}> <div class={["ui-tab ui-tab-active ui-editor-tab-current inline-flex max-w-full items-center gap-2 overflow-hidden px-3 py-2", if(@post_editor.dirty?, do: "dirty")]}>
<span class="editor-tab-title truncate" data-testid="editor-title"><%= @post_editor.display_title %></span> <span class="truncate" data-testid="editor-title"><%= @post_editor.display_title %></span>
<%= if @post_editor.dirty? do %> <%= if @post_editor.dirty? do %>
<span class="editor-tab-dirty" title={dgettext("ui", "Unsaved")}>●</span> <span class="editor-tab-dirty" title={dgettext("ui", "Unsaved")}>●</span>
<% end %> <% end %>
</div> </div>
</div> </div>
<div class="editor-actions ui-editor-actions flex flex-wrap items-center justify-end gap-2"> <div class="ui-editor-actions flex flex-wrap items-center justify-end gap-2">
<span class={["status-badge", "ui-badge", "status-#{@post_editor.status}"]} data-testid="post-status-badge"> <span class={["status-badge", "ui-badge", "status-#{@post_editor.status}"]} data-testid="post-status-badge">
<%= post_status_label(@post_editor.status) %> <%= post_status_label(@post_editor.status) %>
</span> </span>

View File

@@ -1,7 +1,7 @@
<div class="scripts-view-shell editor ui-editor-shell flex h-full min-h-0 flex-col" data-testid="script-editor"> <div class="scripts-view-shell ui-editor-shell flex h-full min-h-0 flex-col" data-testid="script-editor">
<div class="editor-header scripts-header ui-editor-header flex shrink-0 items-start justify-between gap-3"> <div class="ui-editor-header flex shrink-0 items-start justify-between gap-3">
<div class="editor-tabs flex min-w-0 flex-1 overflow-hidden"><div class="editor-tab ui-tab ui-tab-active ui-editor-tab-current active inline-flex max-w-full items-center overflow-hidden px-3 py-2"><span class="editor-tab-title truncate"><%= @script_editor.title %></span></div></div> <div class="flex min-w-0 flex-1 overflow-hidden"><div class="ui-tab ui-tab-active ui-editor-tab-current inline-flex max-w-full items-center overflow-hidden px-3 py-2"><span class="truncate"><%= @script_editor.title %></span></div></div>
<div class="editor-actions ui-editor-actions flex flex-wrap items-center justify-end gap-2"> <div class="ui-editor-actions flex flex-wrap items-center justify-end gap-2">
<span class={[ <span class={[
"status-badge", "status-badge",
"ui-badge", "ui-badge",
@@ -16,22 +16,22 @@
<button class="secondary danger ui-button ui-button-secondary ui-button-danger" type="button" phx-click="delete_script_editor" phx-target={@myself}><%= dgettext("ui", "Delete") %></button> <button class="secondary danger ui-button ui-button-secondary ui-button-danger" type="button" phx-click="delete_script_editor" phx-target={@myself}><%= dgettext("ui", "Delete") %></button>
</div> </div>
</div> </div>
<form class="editor-content scripts-view flex min-h-0 flex-1 flex-col gap-4 overflow-hidden p-4" phx-change="change_script_editor" phx-target={@myself}> <form class="flex min-h-0 flex-1 flex-col gap-4 overflow-hidden p-4" phx-change="change_script_editor" phx-target={@myself}>
<div class="editor-header-row scripts-meta-row grid gap-4"> <div class="grid gap-4">
<div class="editor-meta flex min-w-0 flex-col gap-4"> <div class="flex min-w-0 flex-col gap-4">
<div class="editor-field-row ui-field-grid-2 grid gap-4 md:grid-cols-2"> <div class="ui-field-grid-2 grid gap-4 md:grid-cols-2">
<div class="editor-field ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Title") %></label><input class="ui-input" type="text" name="script_editor[title]" value={@script_editor.title} /></div> <div class="ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Title") %></label><input class="ui-input" type="text" name="script_editor[title]" value={@script_editor.title} /></div>
<div class="editor-field ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Slug") %></label><input class="ui-input" type="text" name="script_editor[slug]" value={@script_editor.slug} /></div> <div class="ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Slug") %></label><input class="ui-input" type="text" name="script_editor[slug]" value={@script_editor.slug} /></div>
</div> </div>
<div class="editor-field-row ui-field-grid-3 grid gap-4 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto]"> <div class="ui-field-grid-3 grid gap-4 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto]">
<div class="editor-field ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Kind") %></label><select class="ui-input" name="script_editor[kind]"><option value="utility" selected={@script_editor.kind == "utility"}>utility</option><option value="macro" selected={@script_editor.kind == "macro"}>macro</option><option value="transform" selected={@script_editor.kind == "transform"}>transform</option></select></div> <div class="ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Kind") %></label><select class="ui-input" name="script_editor[kind]"><option value="utility" selected={@script_editor.kind == "utility"}>utility</option><option value="macro" selected={@script_editor.kind == "macro"}>macro</option><option value="transform" selected={@script_editor.kind == "transform"}>transform</option></select></div>
<div class="editor-field ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Entrypoint") %></label><select class="ui-input" name="script_editor[entrypoint]"><%= for entrypoint <- @script_editor.entrypoints do %><option value={entrypoint} selected={entrypoint == @script_editor.entrypoint}><%= entrypoint %></option><% end %></select></div> <div class="ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Entrypoint") %></label><select class="ui-input" name="script_editor[entrypoint]"><%= for entrypoint <- @script_editor.entrypoints do %><option value={entrypoint} selected={entrypoint == @script_editor.entrypoint}><%= entrypoint %></option><% end %></select></div>
<div class="editor-field scripts-enabled-field flex flex-col justify-end gap-1.5"><label><input type="checkbox" name="script_editor[enabled]" checked={@script_editor.enabled} /> <%= dgettext("ui", "Enabled") %></label></div> <div class="flex flex-col justify-end gap-1.5"><label><input type="checkbox" name="script_editor[enabled]" checked={@script_editor.enabled} /> <%= dgettext("ui", "Enabled") %></label></div>
</div> </div>
</div> </div>
</div> </div>
<div class="editor-body scripts-editor flex min-h-0 flex-1 flex-col overflow-hidden"> <div class="flex min-h-0 flex-1 flex-col overflow-hidden">
<div class="editor-toolbar scripts-toolbar ui-toolbar flex items-center gap-3"><div class="editor-toolbar-left ui-toolbar-group flex items-center gap-2"><label><%= dgettext("ui", "Content") %></label></div></div> <div class="ui-toolbar flex items-center gap-3"><div class="ui-toolbar-group flex items-center gap-2"><label><%= dgettext("ui", "Content") %></label></div></div>
<div <div
id={"script-editor-monaco-shell-#{@script_editor.id}"} id={"script-editor-monaco-shell-#{@script_editor.id}"}
class="scripts-monaco monaco-editor-shell min-h-0 flex-1 overflow-hidden" class="scripts-monaco monaco-editor-shell min-h-0 flex-1 overflow-hidden"
@@ -45,6 +45,6 @@
<textarea id={"script-editor-content-#{@script_editor.id}"} class="monaco-editor-input code-editor-textarea" name="script_editor[content]" spellcheck="false"><%= @script_editor.content %></textarea> <textarea id={"script-editor-content-#{@script_editor.id}"} class="monaco-editor-input code-editor-textarea" name="script_editor[content]" spellcheck="false"><%= @script_editor.content %></textarea>
</div> </div>
</div> </div>
<div class="editor-footer flex shrink-0 flex-wrap gap-4"><span class="text-muted text-small"><%= dgettext("ui", "Created") %>: <%= BDS.Persistence.timestamp_to_iso8601(@script_editor.created_at) %></span><span class="text-muted text-small"><%= dgettext("ui", "Updated") %>: <%= BDS.Persistence.timestamp_to_iso8601(@script_editor.updated_at) %></span></div> <div class="flex shrink-0 flex-wrap gap-4"><span class="text-muted text-small"><%= dgettext("ui", "Created") %>: <%= BDS.Persistence.timestamp_to_iso8601(@script_editor.created_at) %></span><span class="text-muted text-small"><%= dgettext("ui", "Updated") %>: <%= BDS.Persistence.timestamp_to_iso8601(@script_editor.updated_at) %></span></div>
</form> </form>
</div> </div>

View File

@@ -1,7 +1,7 @@
<div class="templates-view-shell editor ui-editor-shell flex h-full min-h-0 flex-col" data-testid="template-editor"> <div class="templates-view-shell ui-editor-shell flex h-full min-h-0 flex-col" data-testid="template-editor">
<div class="editor-header templates-header ui-editor-header flex shrink-0 items-start justify-between gap-3"> <div class="ui-editor-header flex shrink-0 items-start justify-between gap-3">
<div class="editor-tabs flex min-w-0 flex-1 overflow-hidden"><div class="editor-tab ui-tab ui-tab-active ui-editor-tab-current active inline-flex max-w-full items-center overflow-hidden px-3 py-2"><span class="editor-tab-title truncate"><%= @template_editor.title %></span></div></div> <div class="flex min-w-0 flex-1 overflow-hidden"><div class="ui-tab ui-tab-active ui-editor-tab-current inline-flex max-w-full items-center overflow-hidden px-3 py-2"><span class="truncate"><%= @template_editor.title %></span></div></div>
<div class="editor-actions ui-editor-actions flex flex-wrap items-center justify-end gap-2"> <div class="ui-editor-actions flex flex-wrap items-center justify-end gap-2">
<span class={[ <span class={[
"status-badge", "status-badge",
"ui-badge", "ui-badge",
@@ -15,21 +15,21 @@
<button class="secondary danger ui-button ui-button-secondary ui-button-danger" type="button" phx-click="delete_template_editor" phx-target={@myself}><%= dgettext("ui", "Delete") %></button> <button class="secondary danger ui-button ui-button-secondary ui-button-danger" type="button" phx-click="delete_template_editor" phx-target={@myself}><%= dgettext("ui", "Delete") %></button>
</div> </div>
</div> </div>
<form class="editor-content templates-view flex min-h-0 flex-1 flex-col gap-4 overflow-hidden p-4" phx-change="change_template_editor" phx-target={@myself}> <form class="flex min-h-0 flex-1 flex-col gap-4 overflow-hidden p-4" phx-change="change_template_editor" phx-target={@myself}>
<div class="editor-header-row templates-meta-row grid gap-4"> <div class="grid gap-4">
<div class="editor-meta flex min-w-0 flex-col gap-4"> <div class="flex min-w-0 flex-col gap-4">
<div class="editor-field-row ui-field-grid-2 grid gap-4 md:grid-cols-2"> <div class="ui-field-grid-2 grid gap-4 md:grid-cols-2">
<div class="editor-field ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Title") %></label><input class="ui-input" type="text" name="template_editor[title]" value={@template_editor.title} /></div> <div class="ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Title") %></label><input class="ui-input" type="text" name="template_editor[title]" value={@template_editor.title} /></div>
<div class="editor-field ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Slug") %></label><input class="ui-input" type="text" name="template_editor[slug]" value={@template_editor.slug} /></div> <div class="ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Slug") %></label><input class="ui-input" type="text" name="template_editor[slug]" value={@template_editor.slug} /></div>
</div> </div>
<div class="editor-field-row ui-field-grid-3 grid gap-4 md:grid-cols-[minmax(0,1fr)_auto]"> <div class="ui-field-grid-3 grid gap-4 md:grid-cols-[minmax(0,1fr)_auto]">
<div class="editor-field ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Kind") %></label><select class="ui-input" name="template_editor[kind]"><option value="post" selected={@template_editor.kind == :post or @template_editor.kind == "post"}>post</option><option value="list" selected={@template_editor.kind == :list or @template_editor.kind == "list"}>list</option><option value="not-found" selected={@template_editor.kind == :"not-found" or @template_editor.kind == "not-found"}>not-found</option><option value="partial" selected={@template_editor.kind == :partial or @template_editor.kind == "partial"}>partial</option></select></div> <div class="ui-field-stack flex flex-col gap-1.5"><label><%= dgettext("ui", "Kind") %></label><select class="ui-input" name="template_editor[kind]"><option value="post" selected={@template_editor.kind == :post or @template_editor.kind == "post"}>post</option><option value="list" selected={@template_editor.kind == :list or @template_editor.kind == "list"}>list</option><option value="not-found" selected={@template_editor.kind == :"not-found" or @template_editor.kind == "not-found"}>not-found</option><option value="partial" selected={@template_editor.kind == :partial or @template_editor.kind == "partial"}>partial</option></select></div>
<div class="editor-field templates-enabled-field flex flex-col justify-end gap-1.5"><label><input type="checkbox" name="template_editor[enabled]" checked={@template_editor.enabled} /> <%= dgettext("ui", "Enabled") %></label></div> <div class="flex flex-col justify-end gap-1.5"><label><input type="checkbox" name="template_editor[enabled]" checked={@template_editor.enabled} /> <%= dgettext("ui", "Enabled") %></label></div>
</div> </div>
</div> </div>
</div> </div>
<div class="editor-body templates-editor flex min-h-0 flex-1 flex-col overflow-hidden"> <div class="flex min-h-0 flex-1 flex-col overflow-hidden">
<div class="editor-toolbar templates-toolbar ui-toolbar flex items-center gap-3"><div class="editor-toolbar-left ui-toolbar-group flex items-center gap-2"><label><%= dgettext("ui", "Content") %></label></div></div> <div class="ui-toolbar flex items-center gap-3"><div class="ui-toolbar-group flex items-center gap-2"><label><%= dgettext("ui", "Content") %></label></div></div>
<div <div
id={"template-editor-monaco-shell-#{@template_editor.id}"} id={"template-editor-monaco-shell-#{@template_editor.id}"}
class="templates-monaco monaco-editor-shell min-h-0 flex-1 overflow-hidden" class="templates-monaco monaco-editor-shell min-h-0 flex-1 overflow-hidden"
@@ -43,6 +43,6 @@
<textarea id={"template-editor-content-#{@template_editor.id}"} class="monaco-editor-input code-editor-textarea" name="template_editor[content]" spellcheck="false"><%= @template_editor.content %></textarea> <textarea id={"template-editor-content-#{@template_editor.id}"} class="monaco-editor-input code-editor-textarea" name="template_editor[content]" spellcheck="false"><%= @template_editor.content %></textarea>
</div> </div>
</div> </div>
<div class="editor-footer flex shrink-0 flex-wrap gap-4"><span class="text-muted text-small"><%= dgettext("ui", "Created") %>: <%= BDS.Persistence.timestamp_to_iso8601(@template_editor.created_at) %></span><span class="text-muted text-small"><%= dgettext("ui", "Updated") %>: <%= BDS.Persistence.timestamp_to_iso8601(@template_editor.updated_at) %></span></div> <div class="flex shrink-0 flex-wrap gap-4"><span class="text-muted text-small"><%= dgettext("ui", "Created") %>: <%= BDS.Persistence.timestamp_to_iso8601(@template_editor.created_at) %></span><span class="text-muted text-small"><%= dgettext("ui", "Updated") %>: <%= BDS.Persistence.timestamp_to_iso8601(@template_editor.updated_at) %></span></div>
</form> </form>
</div> </div>

View File

@@ -2508,7 +2508,7 @@ button svg, button svg * {
max-width: 100%; max-width: 100%;
height: auto; height: auto;
} }
.post-editor.editor, .scripts-view-shell.editor, .templates-view-shell.editor { .post-editor, .scripts-view-shell, .templates-view-shell {
flex: 1; flex: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -2555,22 +2555,22 @@ button svg, button svg * {
font-size: 11px; font-size: 11px;
opacity: 0.7; opacity: 0.7;
} }
.post-editor .status-badge, .scripts-view-shell.editor .status-badge, .templates-view-shell.editor .status-badge { .post-editor .status-badge, .scripts-view-shell .status-badge, .templates-view-shell .status-badge {
padding: 2px 8px; padding: 2px 8px;
border-radius: 10px; border-radius: 10px;
font-size: 11px; font-size: 11px;
font-weight: 500; font-weight: 500;
text-transform: uppercase; text-transform: uppercase;
} }
.post-editor .status-badge.status-draft, .scripts-view-shell.editor .status-badge.status-draft, .templates-view-shell.editor .status-badge.status-draft { .post-editor .status-badge.status-draft, .scripts-view-shell .status-badge.status-draft, .templates-view-shell .status-badge.status-draft {
background-color: rgba(204, 167, 0, 0.2); background-color: rgba(204, 167, 0, 0.2);
color: var(--vscode-notificationsWarningIcon-foreground, var(--vscode-editorWarning-foreground)); color: var(--vscode-notificationsWarningIcon-foreground, var(--vscode-editorWarning-foreground));
} }
.post-editor .status-badge.status-published, .scripts-view-shell.editor .status-badge.status-published, .templates-view-shell.editor .status-badge.status-published { .post-editor .status-badge.status-published, .scripts-view-shell .status-badge.status-published, .templates-view-shell .status-badge.status-published {
background-color: rgba(115, 201, 145, 0.2); background-color: rgba(115, 201, 145, 0.2);
color: var(--vscode-testing-iconPassed); color: var(--vscode-testing-iconPassed);
} }
.post-editor .status-badge.status-archived, .scripts-view-shell.editor .status-badge.status-archived, .templates-view-shell.editor .status-badge.status-archived { .post-editor .status-badge.status-archived, .scripts-view-shell .status-badge.status-archived, .templates-view-shell .status-badge.status-archived {
background-color: rgba(133, 133, 133, 0.2); background-color: rgba(133, 133, 133, 0.2);
color: var(--vscode-descriptionForeground); color: var(--vscode-descriptionForeground);
} }
@@ -3024,7 +3024,7 @@ button svg, button svg * {
flex-wrap: wrap; flex-wrap: wrap;
} }
@media (max-width: 980px) { @media (max-width: 980px) {
.post-editor .editor-header, .scripts-view-shell.editor .editor-header, .templates-view-shell.editor .editor-header, .post-editor .metadata-toggle-header, .post-editor .editor-toolbar { .post-editor .editor-header, .scripts-view-shell .ui-editor-header, .templates-view-shell .ui-editor-header, .post-editor .metadata-toggle-header, .post-editor .editor-toolbar {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: flex-start; align-items: flex-start;
@@ -3035,7 +3035,7 @@ button svg, button svg * {
.post-editor .editor-media-panel { .post-editor .editor-media-panel {
width: 100%; width: 100%;
} }
.post-editor .editor-toolbar-right, .post-editor .editor-actions, .scripts-view-shell.editor .editor-actions, .templates-view-shell.editor .editor-actions { .post-editor .editor-toolbar-right, .post-editor .ui-editor-actions, .scripts-view-shell .ui-editor-actions, .templates-view-shell .ui-editor-actions {
justify-content: flex-start; justify-content: flex-start;
} }
} }
@@ -4255,11 +4255,11 @@ button svg, button svg * {
color: var(--vscode-notificationsWarningIcon-foreground, var(--vscode-editorWarning-foreground)); color: var(--vscode-notificationsWarningIcon-foreground, var(--vscode-editorWarning-foreground));
font-size: 10px; font-size: 10px;
} }
[data-testid="media-editor"] .editor-actions button { [data-testid="media-editor"] .ui-editor-actions button {
padding: 4px 10px; padding: 4px 10px;
font-size: 12px; font-size: 12px;
} }
[data-testid="media-editor"] .editor-actions button.danger:hover { [data-testid="media-editor"] .ui-editor-actions button.danger:hover {
background-color: var(--vscode-notificationsErrorIcon-foreground); background-color: var(--vscode-notificationsErrorIcon-foreground);
} }
[data-testid="media-editor"] .auto-save-indicator { [data-testid="media-editor"] .auto-save-indicator {

View File

@@ -292,19 +292,19 @@ defmodule BDS.Desktop.ShellLiveTest do
settings_html = render_component(&BDS.Desktop.ShellLive.SettingsEditor.render/1, phase3_settings_editor_assigns()) settings_html = render_component(&BDS.Desktop.ShellLive.SettingsEditor.render/1, phase3_settings_editor_assigns())
tags_html = render_component(&BDS.Desktop.ShellLive.TagsEditor.render/1, phase3_tags_editor_assigns()) tags_html = render_component(&BDS.Desktop.ShellLive.TagsEditor.render/1, phase3_tags_editor_assigns())
assert post_html =~ "post-editor editor ui-editor-shell flex h-full min-h-0 flex-col" assert post_html =~ "post-editor ui-editor-shell flex h-full min-h-0 flex-col"
assert post_html =~ "editor-header ui-editor-header flex shrink-0 items-start justify-between gap-3" assert post_html =~ "editor-header ui-editor-header flex shrink-0 items-start justify-between gap-3"
assert post_html =~ "editor-field ui-field-stack flex flex-col gap-1.5" assert post_html =~ "editor-field ui-field-stack flex flex-col gap-1.5"
assert post_html =~ "editor-toolbar ui-toolbar flex items-center gap-3" assert post_html =~ "editor-toolbar ui-toolbar flex items-center gap-3"
assert media_html =~ "media-editor editor ui-editor-shell flex h-full min-h-0 flex-col" assert media_html =~ "media-editor ui-editor-shell flex h-full min-h-0 flex-col"
assert media_html =~ "editor-content media-editor grid min-h-0 flex-1 gap-4 overflow-auto p-4" assert media_html =~ "editor-content media-editor grid min-h-0 flex-1 gap-4 overflow-auto p-4"
assert script_html =~ "scripts-view-shell editor ui-editor-shell flex h-full min-h-0 flex-col" assert script_html =~ "scripts-view-shell ui-editor-shell flex h-full min-h-0 flex-col"
assert script_html =~ "editor-content scripts-view flex min-h-0 flex-1 flex-col gap-4 overflow-hidden p-4" assert script_html =~ "flex min-h-0 flex-1 flex-col gap-4 overflow-hidden p-4"
assert template_html =~ "templates-view-shell editor ui-editor-shell flex h-full min-h-0 flex-col" assert template_html =~ "templates-view-shell ui-editor-shell flex h-full min-h-0 flex-col"
assert template_html =~ "editor-content templates-view flex min-h-0 flex-1 flex-col gap-4 overflow-hidden p-4" assert template_html =~ "flex min-h-0 flex-1 flex-col gap-4 overflow-hidden p-4"
assert chat_html =~ "chat-panel ui-editor-shell flex h-full min-h-0 flex-col" assert chat_html =~ "chat-panel ui-editor-shell flex h-full min-h-0 flex-col"
assert chat_html =~ "chat-panel-header flex shrink-0 items-center justify-between gap-3" assert chat_html =~ "chat-panel-header flex shrink-0 items-center justify-between gap-3"
@@ -344,7 +344,7 @@ defmodule BDS.Desktop.ShellLiveTest do
assert post_html =~ ~s(class="secondary danger ui-button ui-button-secondary ui-button-danger) assert post_html =~ ~s(class="secondary danger ui-button ui-button-secondary ui-button-danger)
assert post_html =~ ~s(class="post-editor-input ui-input) assert post_html =~ ~s(class="post-editor-input ui-input)
assert post_html =~ ~s(class="post-editor-textarea post-editor-excerpt ui-textarea) assert post_html =~ ~s(class="post-editor-textarea post-editor-excerpt ui-textarea)
assert post_html =~ ~s(class="editor-tab ui-tab ui-tab-active) assert post_html =~ "ui-tab ui-tab-active ui-editor-tab-current"
assert media_html =~ ~s(class="secondary quick-actions-btn ui-button ui-button-secondary) assert media_html =~ ~s(class="secondary quick-actions-btn ui-button ui-button-secondary)
assert media_html =~ ~s(class="post-editor-input ui-input disabled ui-input-disabled) assert media_html =~ ~s(class="post-editor-input ui-input disabled ui-input-disabled)
@@ -3223,7 +3223,7 @@ defmodule BDS.Desktop.ShellLiveTest do
"subtitle" => "published" "subtitle" => "published"
}) })
assert published_script_html =~ ~s(class="scripts-view-shell editor ui-editor-shell flex h-full min-h-0 flex-col") assert published_script_html =~ ~s(class="scripts-view-shell ui-editor-shell flex h-full min-h-0 flex-col")
assert published_script_html =~ ~s(data-testid="script-editor") assert published_script_html =~ ~s(data-testid="script-editor")
assert published_script_html =~ ~s(data-testid="script-status-badge") assert published_script_html =~ ~s(data-testid="script-status-badge")
assert published_script_html =~ ~s(class="status-badge ui-badge status-published") assert published_script_html =~ ~s(class="status-badge ui-badge status-published")
@@ -3244,7 +3244,7 @@ defmodule BDS.Desktop.ShellLiveTest do
"subtitle" => "published" "subtitle" => "published"
}) })
assert published_template_html =~ ~s(class="templates-view-shell editor ui-editor-shell flex h-full min-h-0 flex-col") assert published_template_html =~ ~s(class="templates-view-shell ui-editor-shell flex h-full min-h-0 flex-col")
assert published_template_html =~ ~s(data-testid="template-editor") assert published_template_html =~ ~s(data-testid="template-editor")
assert published_template_html =~ ~s(data-testid="template-status-badge") assert published_template_html =~ ~s(data-testid="template-status-badge")
assert published_template_html =~ ~s(class="status-badge ui-badge status-published") assert published_template_html =~ ~s(class="status-badge ui-badge status-published")
@@ -3587,7 +3587,7 @@ defmodule BDS.Desktop.ShellLiveTest do
"subtitle" => script.slug "subtitle" => script.slug
}) })
assert script_html =~ ~s(class="scripts-view-shell editor ui-editor-shell flex h-full min-h-0 flex-col") assert script_html =~ ~s(class="scripts-view-shell ui-editor-shell flex h-full min-h-0 flex-col")
assert script_html =~ "scripts-monaco" assert script_html =~ "scripts-monaco"
assert script_html =~ ~s(data-monaco-language="lua") assert script_html =~ ~s(data-monaco-language="lua")
assert script_html =~ ~s(data-monaco-word-wrap="on") assert script_html =~ ~s(data-monaco-word-wrap="on")
@@ -3602,7 +3602,7 @@ defmodule BDS.Desktop.ShellLiveTest do
"subtitle" => template.slug "subtitle" => template.slug
}) })
assert template_html =~ ~s(class="templates-view-shell editor ui-editor-shell flex h-full min-h-0 flex-col") assert template_html =~ ~s(class="templates-view-shell ui-editor-shell flex h-full min-h-0 flex-col")
assert template_html =~ "templates-monaco" assert template_html =~ "templates-monaco"
assert template_html =~ ~s(data-monaco-language="liquid") assert template_html =~ ~s(data-monaco-language="liquid")
assert template_html =~ ~s(data-monaco-word-wrap="on") assert template_html =~ ~s(data-monaco-word-wrap="on")