See "img upload" in sidebar snet/molecules for variants, or go to info panel and look for it in "references" (@snet-img-upload)
Refer to modal frame found in view tab for complete structure without content.
A modal's default size is 640px
Modifier classes for modals
A modal with a content loading component behaves as follows:
<div class="sds-modal modal fade -contentLoading" id="" aria-hidden="true" tabindex="-1">
<div class="sds-modal__dialog modal-dialog modal-lg modal-dialog-centered">
<div class="sds-modal__content modal-content">
<div class="sds-modal__header modal-header">
<button type="button" class="sds-btn -iconBtn -btnSecondary -ghost sds-modal__close" data-dismiss="modal" aria-label="Close">
<span class="sds-icon sds-icon-close"></span>
</button>
</div>
<div class="sds-modal__body -isLoading modal-body">
<div class="sds-stackMd">
<span class="sds-skeletonUnit"></span>
<div class="sds-stackMd">
<span class="sds-skeletonUnit -skeletonUnitTextBody"></span>
<span class="sds-skeletonUnit -skeletonUnitTextBody"></span>
</div>
</div>
</div>
<div class="sds-modal__body modal-body">
regular modal body content
</div>
<div class="sds-modal__footer modal-footer">
<div class="sds-btnGroup">
<button type="button" class="sds-btn -btnSecondary -btnInverse" disabled>
<span class="sds-btn__text">Annuler</span>
</button>
<button type="button" class="sds-btn -btnPrimary -isLoading" disabled>
<span class="sds-btn__text">Sauvegarder</span>
</button>
</div>
</div>
</div>
</div>
</div>
{% extends "@snet-modal-base-frame" %}
{% block bodyContentLoading %}
<div class="{{ namespace }}stackMd">
{% render "@skeleton-unit--default" %}
<div class="{{ namespace }}stackMd">
{% render "@skeleton-unit--text-body" %}
{% render "@skeleton-unit--text-body" %}
</div>
</div>
{% endblock %}
{% block body %}
regular modal body content
{% endblock %}
{% block footer %}
<div class="{{ namespace }}btnGroup">
{% render "@btn-secondary-inverse",{
text: "Annuler",
disabled: true,
attrs: imgTextBtnModalAttrs
},true %}
{% render "@btn-primary",{
text: "Sauvegarder",
disabled: true,
classes: ["-isLoading"],
attrs: imgTextBtnModalAttrs
},true %}
</div>
{% endblock %}