.signum-notification-body data-controller="signum-notification-body" data-signum-notification-body-type-value=data[:type] data-signum-notification-body-timeout-value=data[:timeout] data-signum-notification-body-sticky-value="#{signal.sticky.present? ? signal.sticky.to_s : 'false'}" data-signum-notification-body-signal-state-value="#{signal.state}" data-signum-notification-body-signal-id-value="#{signal.id}" id="#{Signum.config.notification_body_id.call(data[:type], signal)}"
  .signum-notification-body__mb
    .signum-notification-body__mb__bc
      .signum-notification-body__mb__bc__ic
        - if signal.icon.present?
          = "<i class='#{signal.kind} #{signal.icon}' ></i>".html_safe
      .signum-notification-body__mb__bc__mc
        - if signal.title.present?
          p.signum-notification-body__mb__bc__mc__ti
            = sanitize signal.title
        - if signal.text.present?
          p.signum-notification-body__mb__bc__mc__tx
            = sanitize signal.text
        - if signal.links.present?
          .signum-notification-body__mb__bc__mc__lkc
            - signal.links.each do | link |
              - next unless link.is_a?(Hash)
              a.signum-notification-body__mb__bc__mc__lkc__lk*{href: link.fetch('url', '#'), target:link.fetch("target", "_blank"), 'data-action': link["close"] ? "click->signum-notification-body#close" : "" }.merge(link.fetch("link_attributes", {}))
                i.fas.fa-link
                =< link["title"] || link["url"] || '(...)'
        - if signal.attachments.attached?
          .signum-notification-body__mb__bc__mc__attc
            - signal.attachments.each do | attachment |
              a.signum-notification-body__mb__bc__mc__attc__att href="#{Rails.application.routes.url_helpers.rails_blob_path(attachment, disposition: "attachment", only_path: true)}"
                i.fas.fa-paperclip-vertical
                =< attachment.blob.filename
      .signum-notification-body__mb__bc__bcc
        a.signum-notification-body__mb__bc__bcc__b[data-action="signum-notification-body#close"]
          span.sr-only
            | Close
          svg.h-5.w-5[xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" aria-hidden="true"]
            path[d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"]
    - if signal.buttons.present?
      .signum-notification-body__mb__bmc
        - signal.buttons.each do | button |
          - next unless button.is_a?(Hash)
          .signum-notification-body__mb__bmc__bc
            a.signum-notification-body__mb__bmc__bc__b*{href: button.fetch('url', '#'), target: button.fetch("target", "_blank"), 'data-action': button["close"] ? "click->signum-notification-body#close" : "" }.merge(button.fetch("link_attributes", {}))
              = button["title"]
  - if signal.count.present?
    - percentage = signal.total.present? ? signal.count.fdiv(signal.total) * 100 : signal.count
    .signum-notification-body__pbc
      = sts.progress_bar percentage, size: :small, label: false