%
data_attributes = local_assigns[:data] || {}
disabled = local_assigns[:disabled] || false
placeholder = local_assigns[:placeholder] || nil
autofocus = local_assigns[:autofocus] || false
style = local_assigns[:style] || nil
classes = local_assigns[:class] || nil
rows = local_assigns[:rows] || 15
value = if defined?(form)
form.object.send(name)
else
local_assigns[:value] || nil
end
extra_preview_params = local_assigns[:extra_preview_params] || {}
%>
<%= content_tag :div,
class: "ms:flex ms:flex-col ms:w-full ms:border ms:border-zinc-300 ms:rounded ms:@container ms:group ms:focus-within:border-zinc-500",
data: {
controller: "marksmith",
marksmith_preview_url_value: marksmith.markdown_previews_path,
marksmith_active_tab_class: "bg-white",
marksmith_attach_url_value: main_app.rails_direct_uploads_url,
marksmith_extra_preview_params_value: extra_preview_params.as_json,
} do %>
<% toggle_button_classes = class_names(marksmith_button_classes, "ms:border-0 ms:bg-none") %>
" data-marksmith-target="toolbar">
<%= marksmith_toolbar_button "bold" %>
<%= marksmith_toolbar_button "header" %>
<%= marksmith_toolbar_button "italic" %>
<%= marksmith_toolbar_button "quote" %>
<%= marksmith_toolbar_button "code" %>
<%= marksmith_toolbar_button "link" %>
<%= marksmith_toolbar_button "image" %>
<%= marksmith_toolbar_button "unordered-list" %>
<%= marksmith_toolbar_button "ordered-list" %>
<%= marksmith_toolbar_button "task-list" %>
<%= text_area_tag name, value,
id: name,
class: class_names("ms:flex ms:flex-1 ms:rounded ms:border-none ms:py-2 ms:px-3 ms:focus:outline-none", classes),
rows: rows,
data: {
marksmith_target: "fieldElement",
action: "drop->marksmith#dropUpload paste->marksmith#pasteUpload",
**data_attributes
},
disabled:,
placeholder:,
autofocus:,
style:
%>
<%= content_tag :div,
class: "ms:hidden ms:markdown-preview",
id: "markdown-preview-#{name}",
data: {
marksmith_target: "previewElement",
} do %>
<% end %>
<% end %>