AlertWithIconTitleAndDescriptionComponent
The provided code defines a Ruby class named `AlertWithTitleAndDescriptionComponent` which inherits from `ApplicationComponent`. This class defines a `template` method which appears to construct an alert component with a title and description. The alert is visually styled with a shadow and includes an informational icon (an SVG graphic), a bold title text "New message!", and a smaller text indicating there is an unread message. It also includes a button labelled "See". The method uses a domain-specific language (DSL) for generating HTML content, which involves nested calls to create a div structure with embedded SVG, headings, and text content. This component is likely intended for use in a Ruby on Rails application to display notifications or alerts to users.
# frozen_string_literal: true
class AlertWithTitleAndDescriptionComponent < ApplicationComponent
def template
div(class: "alert shadow-lg", role: "alert") do
svg(xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", class: "stroke-info shrink-0 w-6 h-6") do |svg|
svg.path(stroke_linecap: "round", stroke_linejoin: "round", stroke_width: "2", d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z")
end
div do
h3(class: "font-bold") { "New message!" }
div(class: "text-xs") { "You have 1 unread message" }
end
button(class: "btn btn-sm") { "See" }
end
end
end