feat: last gaps on tailwind migration
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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 %>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user