SusModal

Модальный диалог с backdrop, focus trap и слотами header / body / footer.
Пакет
SusKit · Молекулы (коммерческий)
Свойства
| Имя | Тип | По умолчанию | |
|---|---|---|---|
Model | Prop<bool> | false | v-model |
Persistent | Prop<bool> | false | v-model |
Width | Prop<float> | 500f | v-model |
Fullscreen | Prop<bool> | false | v-model |
Scrollable | Prop<bool> | false | v-model |
Transition | Prop<string> | "fade" | v-model |
Слоты
| Имя |
|---|
header |
(по умолчанию) |
footer |
События
| Имя | Поле | Payload |
|---|---|---|
Opened | OnOpened | — |
Closed | OnClosed | — |
BackdropClick | OnBackdropClick | — |
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
modal-contentmodal-scrimmodal-wrappersus-buttonsus-confirm-modal__cardsus-confirm-modal__titlesus-modalsus-modal__backdropsus-modal__bodysus-modal__cardsus-modal__footersus-modal__footer-slotsus-modal__headersus-modal__hintsus-modal__messagesus-modal__table-framesus-modal__titlesus-modal__wrappersus-modal--fullscreensus-modal--scrollablesus-modal--transitionsus-modal--w-200sus-modal--w-220sus-modal--w-240sus-modal--w-260sus-modal--w-280sus-modal--w-300sus-modal--w-320sus-modal--w-340sus-modal--w-360sus-modal--w-380sus-modal--w-400sus-modal--w-420sus-modal--w-440sus-modal--w-460sus-modal--w-480sus-modal--w-500sus-modal--w-520sus-modal--w-540sus-modal--w-560sus-modal--w-580sus-modal--w-600sus-modal--w-620sus-modal--w-640sus-modal--w-660sus-modal--w-680sus-modal--w-700sus-modal--w-720sus-modal--w-740sus-modal--w-760sus-modal--w-780sus-modal--w-800sus-modal--w-820sus-modal--w-840sus-modal--w-860sus-modal--w-880sus-modal--w-900sus-modal--w-920sus-modal--w-940sus-modal--w-960sus-router-modalsus-router-modal--panelsus-slotsus-table-pick-modal__bodysus-table-pick-modal__cardsus-table-pick-modal__headersus-table-pick-modal__tablesus-table-pick-modal__title
Использование
xml
<template>
<sus:SusModal :Model="Open.Value" Width="480" @opened="OnOpened">
<template #header>
<ui:Label text="Confirm" />
</template>
<ui:Label text="Are you sure?" />
<template #footer>
<sus:SusButton Text="Cancel" Variant="text" @click="Open.Value = false" />
<sus:SusButton Text="OK" @click="Confirm" />
</template>
</sus:SusModal>
</template>
<script>
public Prop<bool> Open = new(false);
void OnOpened() { }
void Confirm() { Open.Value = false; }
</script>Установите Persistent, чтобы модал оставался открытым при клике на backdrop / нажатии Escape.