@dxtmisha/wiki 0.24.3 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -7
- package/src/classes/WikiStorybookItem.ts +24 -0
- package/src/media/descriptions/wikiDescriptions.ts +28 -0
- package/src/media/descriptions/wikiDescriptionsAccordion.ts +158 -0
- package/src/media/descriptions/wikiDescriptionsActionSheet.ts +211 -0
- package/src/media/descriptions/wikiDescriptionsActions.ts +161 -0
- package/src/media/descriptions/wikiDescriptionsAnchor.ts +42 -0
- package/src/media/descriptions/wikiDescriptionsArrow.ts +181 -0
- package/src/media/descriptions/wikiDescriptionsBlock.ts +97 -0
- package/src/media/descriptions/wikiDescriptionsButton.ts +0 -1
- package/src/media/descriptions/wikiDescriptionsCell.ts +2 -1
- package/src/media/descriptions/wikiDescriptionsChipGroup.ts +168 -0
- package/src/media/descriptions/wikiDescriptionsDialog.ts +182 -0
- package/src/media/descriptions/wikiDescriptionsField.ts +2 -0
- package/src/media/descriptions/wikiDescriptionsImage.ts +41 -6
- package/src/media/descriptions/wikiDescriptionsInput.ts +257 -0
- package/src/media/descriptions/wikiDescriptionsMenu.ts +123 -0
- package/src/media/descriptions/wikiDescriptionsModal.ts +145 -0
- package/src/media/descriptions/wikiDescriptionsMotionTransform.ts +2 -6
- package/src/media/descriptions/wikiDescriptionsSelect.ts +209 -0
- package/src/media/descriptions/wikiDescriptionsSelectValue.ts +78 -0
- package/src/media/descriptions/wikiDescriptionsTextareaAutosize.ts +50 -0
- package/src/media/descriptions/wikiDescriptionsTooltip.ts +89 -0
- package/src/media/functional/en/conversions.mdx +67 -0
- package/src/media/functional/en/dataUtils.mdx +25 -0
- package/src/media/functional/en/datetimeRef.mdx +1 -1
- package/src/media/functional/en/eventRef.mdx +1 -1
- package/src/media/functional/en/executionUtils.mdx +58 -0
- package/src/media/functional/en/geoFlagRef.mdx +1 -1
- package/src/media/functional/en/geoIntlRef.mdx +1 -1
- package/src/media/functional/en/geoRef.mdx +2 -2
- package/src/media/functional/en/meta.mdx +1206 -0
- package/src/media/functional/en/metaManager.mdx +376 -0
- package/src/media/functional/en/metaOg.mdx +694 -0
- package/src/media/functional/en/metaTwitter.mdx +853 -0
- package/src/media/functional/en/reactive.mdx +40 -0
- package/src/media/functional/en/refTypes.mdx +1 -1
- package/src/media/functional/en/useApiRef.mdx +5 -5
- package/src/media/functional/en/useMeta.mdx +431 -0
- package/src/media/functional/en/validationUtils.mdx +11 -0
- package/src/media/functional/ru/conversions.mdx +67 -0
- package/src/media/functional/ru/dataUtils.mdx +25 -0
- package/src/media/functional/ru/datetimeRef.mdx +2 -2
- package/src/media/functional/ru/eventRef.mdx +1 -1
- package/src/media/functional/ru/executionUtils.mdx +58 -0
- package/src/media/functional/ru/geoFlagRef.mdx +1 -1
- package/src/media/functional/ru/geoIntl.mdx +2 -2
- package/src/media/functional/ru/geoIntlRef.mdx +1 -1
- package/src/media/functional/ru/geoRef.mdx +2 -2
- package/src/media/functional/ru/listTypes.mdx +1 -1
- package/src/media/functional/ru/meta.mdx +1330 -0
- package/src/media/functional/ru/metaManager.mdx +376 -0
- package/src/media/functional/ru/metaOg.mdx +694 -0
- package/src/media/functional/ru/metaTwitter.mdx +853 -0
- package/src/media/functional/ru/reactive.mdx +40 -0
- package/src/media/functional/ru/refTypes.mdx +2 -2
- package/src/media/functional/ru/useApiRef.mdx +5 -5
- package/src/media/functional/ru/useMeta.mdx +431 -0
- package/src/media/functional/ru/validationUtils.mdx +11 -0
- package/src/media/mdx/Accordion/accordion.en.mdx +59 -0
- package/src/media/mdx/Accordion/accordion.ru.mdx +59 -0
- package/src/media/mdx/Accordion/slots.en.mdx +6 -0
- package/src/media/mdx/Accordion/slots.ru.mdx +6 -0
- package/src/media/mdx/Accordion/wikiMdxAccordion.ts +25 -0
- package/src/media/mdx/ActionSheet/actionSheet.en.mdx +61 -0
- package/src/media/mdx/ActionSheet/actionSheet.ru.mdx +61 -0
- package/src/media/mdx/ActionSheet/touchClose.en.mdx +21 -0
- package/src/media/mdx/ActionSheet/touchClose.ru.mdx +21 -0
- package/src/media/mdx/ActionSheet/wikiMdxActionSheet.ts +25 -0
- package/src/media/mdx/Actions/actions.en.mdx +48 -0
- package/src/media/mdx/Actions/actions.ru.mdx +48 -0
- package/src/media/mdx/Actions/flexible.en.mdx +19 -0
- package/src/media/mdx/Actions/flexible.ru.mdx +19 -0
- package/src/media/mdx/Actions/list.en.mdx +50 -0
- package/src/media/mdx/Actions/list.ru.mdx +50 -0
- package/src/media/mdx/Actions/wikiMdxActions.ts +31 -0
- package/src/media/mdx/Anchor/anchor.en.mdx +34 -0
- package/src/media/mdx/Anchor/anchor.ru.mdx +34 -0
- package/src/media/mdx/Anchor/expose.go.en.mdx +6 -0
- package/src/media/mdx/Anchor/expose.go.ru.mdx +6 -0
- package/src/media/mdx/Anchor/hide.en.mdx +28 -0
- package/src/media/mdx/Anchor/hide.ru.mdx +28 -0
- package/src/media/mdx/Anchor/isCopy.en.mdx +23 -0
- package/src/media/mdx/Anchor/isCopy.ru.mdx +23 -0
- package/src/media/mdx/Anchor/scroll.en.mdx +34 -0
- package/src/media/mdx/Anchor/scroll.ru.mdx +35 -0
- package/src/media/mdx/Anchor/wikiMdxAnchor.ts +43 -0
- package/src/media/mdx/Arrow/arrow.en.mdx +33 -0
- package/src/media/mdx/Arrow/arrow.ru.mdx +33 -0
- package/src/media/mdx/Arrow/wikiMdxArrow.ts +19 -0
- package/src/media/mdx/Block/block.en.mdx +42 -0
- package/src/media/mdx/Block/block.ru.mdx +42 -0
- package/src/media/mdx/Block/wikiMdxBlock.ts +19 -0
- package/src/media/mdx/ChipGroup/chipGroup.en.mdx +51 -0
- package/src/media/mdx/ChipGroup/chipGroup.ru.mdx +51 -0
- package/src/media/mdx/ChipGroup/selected.en.mdx +50 -0
- package/src/media/mdx/ChipGroup/selected.ru.mdx +50 -0
- package/src/media/mdx/ChipGroup/wikiMdxChipGroup.ts +25 -0
- package/src/media/mdx/Dialog/buttons.en.mdx +45 -0
- package/src/media/mdx/Dialog/buttons.ru.mdx +45 -0
- package/src/media/mdx/Dialog/dialog.en.mdx +66 -0
- package/src/media/mdx/Dialog/dialog.ru.mdx +65 -0
- package/src/media/mdx/Dialog/events.en.mdx +63 -0
- package/src/media/mdx/Dialog/events.ru.mdx +63 -0
- package/src/media/mdx/Dialog/states.en.mdx +58 -0
- package/src/media/mdx/Dialog/states.ru.mdx +57 -0
- package/src/media/mdx/Dialog/wikiMdxDialog.ts +37 -0
- package/src/media/mdx/Field/arrows.en.mdx +22 -6
- package/src/media/mdx/Field/arrows.ru.mdx +22 -6
- package/src/media/mdx/Field/slots.en.mdx +0 -13
- package/src/media/mdx/Field/slots.ru.mdx +0 -13
- package/src/media/mdx/Image/img-tag.en.mdx +105 -0
- package/src/media/mdx/Image/img-tag.ru.mdx +105 -0
- package/src/media/mdx/Image/wikiMdxImage.ts +6 -0
- package/src/media/mdx/Input/currency.en.mdx +38 -0
- package/src/media/mdx/Input/currency.ru.mdx +38 -0
- package/src/media/mdx/Input/date.en.mdx +53 -0
- package/src/media/mdx/Input/date.ru.mdx +53 -0
- package/src/media/mdx/Input/input.en.mdx +143 -0
- package/src/media/mdx/Input/input.ru.mdx +71 -0
- package/src/media/mdx/Input/mask.en.mdx +30 -0
- package/src/media/mdx/Input/mask.ru.mdx +30 -0
- package/src/media/mdx/Input/number.en.mdx +41 -0
- package/src/media/mdx/Input/number.ru.mdx +41 -0
- package/src/media/mdx/Input/type.en.mdx +26 -0
- package/src/media/mdx/Input/type.ru.mdx +26 -0
- package/src/media/mdx/Input/wikiMdxInput.ts +49 -0
- package/src/media/mdx/Menu/event.updateValue.en.mdx +29 -0
- package/src/media/mdx/Menu/event.updateValue.ru.mdx +30 -0
- package/src/media/mdx/Menu/expose.navigation.en.mdx +12 -0
- package/src/media/mdx/Menu/expose.navigation.ru.mdx +12 -0
- package/src/media/mdx/Menu/navigation.en.mdx +56 -0
- package/src/media/mdx/Menu/navigation.ru.mdx +56 -0
- package/src/media/mdx/Menu/slots.control.en.mdx +65 -0
- package/src/media/mdx/Menu/slots.control.ru.mdx +65 -0
- package/src/media/mdx/Menu/slots.en.mdx +2 -24
- package/src/media/mdx/Menu/slots.ru.mdx +2 -24
- package/src/media/mdx/Menu/wikiMdxMenu.ts +27 -3
- package/src/media/mdx/Modal/differences.en.mdx +130 -0
- package/src/media/mdx/Modal/differences.ru.mdx +65 -0
- package/src/media/mdx/Modal/modal.en.mdx +63 -0
- package/src/media/mdx/Modal/modal.ru.mdx +63 -0
- package/src/media/mdx/Modal/wikiMdxModal.ts +25 -0
- package/src/media/mdx/MotionTransform/expose.motionTransformElement.en.mdx +13 -0
- package/src/media/mdx/MotionTransform/expose.motionTransformElement.ru.mdx +14 -0
- package/src/media/mdx/MotionTransform/wikiMdxMotionTransform.ts +6 -0
- package/src/media/mdx/Select/select.en.mdx +69 -0
- package/src/media/mdx/Select/select.ru.mdx +69 -0
- package/src/media/mdx/Select/wikiMdxSelect.ts +19 -0
- package/src/media/mdx/SelectValue/selectValue.en.mdx +64 -0
- package/src/media/mdx/SelectValue/selectValue.ru.mdx +64 -0
- package/src/media/mdx/SelectValue/wikiMdxSelectValue.ts +19 -0
- package/src/media/mdx/TextareaAutosize/textarea-autosize.en.mdx +65 -0
- package/src/media/mdx/TextareaAutosize/textarea-autosize.ru.mdx +65 -0
- package/src/media/mdx/TextareaAutosize/wikiMdxTextareaAutosize.ts +19 -0
- package/src/media/mdx/Tooltip/event.tooltip.en.mdx +7 -0
- package/src/media/mdx/Tooltip/event.tooltip.ru.mdx +8 -0
- package/src/media/mdx/Tooltip/slot.control.en.mdx +14 -0
- package/src/media/mdx/Tooltip/slot.control.ru.mdx +14 -0
- package/src/media/mdx/Tooltip/tooltip.en.mdx +34 -0
- package/src/media/mdx/Tooltip/tooltip.ru.mdx +34 -0
- package/src/media/mdx/Tooltip/wikiMdxTooltip.ts +31 -0
- package/src/media/mdx/Window/classes.ru.mdx +1 -1
- package/src/media/mdx/event/events.actions.en.mdx +44 -0
- package/src/media/mdx/event/events.actions.ru.mdx +44 -0
- package/src/media/mdx/event/events.inputStandard.en.mdx +6 -0
- package/src/media/mdx/event/events.inputStandard.ru.mdx +6 -0
- package/src/media/mdx/event/wikiMdxEvent.ts +20 -8
- package/src/media/mdx/expose/expose.descriptionId.en.mdx +6 -0
- package/src/media/mdx/expose/expose.descriptionId.ru.mdx +6 -0
- package/src/media/mdx/expose/expose.id.en.mdx +6 -0
- package/src/media/mdx/expose/expose.id.ru.mdx +6 -0
- package/src/media/mdx/expose/expose.labelId.en.mdx +6 -0
- package/src/media/mdx/expose/expose.labelId.ru.mdx +6 -0
- package/src/media/mdx/expose/wikiMdxExpose.ts +18 -0
- package/src/media/mdx/slot/body.en.mdx +6 -0
- package/src/media/mdx/slot/body.ru.mdx +6 -0
- package/src/media/mdx/slot/headline.en.mdx +7 -0
- package/src/media/mdx/slot/headline.ru.mdx +6 -0
- package/src/media/mdx/slot/leading.en.mdx +7 -0
- package/src/media/mdx/slot/leading.ru.mdx +7 -0
- package/src/media/mdx/slot/secondary.en.mdx +5 -0
- package/src/media/mdx/slot/secondary.ru.mdx +5 -0
- package/src/media/mdx/slot/trailing.en.mdx +7 -0
- package/src/media/mdx/slot/trailing.ru.mdx +7 -0
- package/src/media/mdx/slot/wikiMdxSlot.ts +30 -0
- package/src/media/mdx/style/isSkeleton.en.mdx +2 -2
- package/src/media/mdx/style/isSkeleton.ru.mdx +2 -2
- package/src/media/mdx/value/v-model-selected.en.mdx +28 -0
- package/src/media/mdx/value/v-model-selected.ru.mdx +28 -0
- package/src/media/mdx/value/v-model.en.mdx +26 -0
- package/src/media/mdx/value/v-model.ru.mdx +26 -0
- package/src/media/mdx/value/wikiMdxValue.ts +24 -3
- package/src/media/mdx/wikiMdx.ts +29 -1
- package/src/media/props/wiki.ts +42 -0
- package/src/media/props/wikiActions.ts +43 -0
- package/src/media/props/wikiActionsInclude.ts +62 -0
- package/src/media/props/wikiAnchor.ts +84 -0
- package/src/media/props/wikiAria.ts +102 -0
- package/src/media/props/wikiArrow.ts +24 -0
- package/src/media/props/wikiArrowInclude.ts +45 -0
- package/src/media/props/wikiBarsInclude.ts +80 -0
- package/src/media/props/wikiChipGroup.ts +39 -0
- package/src/media/props/wikiDialog.ts +34 -0
- package/src/media/props/wikiField.ts +0 -21
- package/src/media/props/wikiFieldCounterInclude.ts +78 -0
- package/src/media/props/wikiForm.ts +248 -0
- package/src/media/props/wikiHook.ts +20 -0
- package/src/media/props/wikiIcon.ts +3 -3
- package/src/media/props/wikiIconInclude.ts +319 -0
- package/src/media/props/wikiImage.ts +71 -19
- package/src/media/props/wikiInformation.ts +160 -0
- package/src/media/props/wikiInput.ts +34 -0
- package/src/media/props/wikiListItem.ts +20 -0
- package/src/media/props/wikiMask.ts +0 -10
- package/src/media/props/wikiMaskInclude.ts +54 -0
- package/src/media/props/wikiMenu.ts +0 -10
- package/src/media/props/wikiMotionTransform.ts +0 -10
- package/src/media/props/wikiOption.ts +113 -0
- package/src/media/props/wikiSelect.ts +68 -0
- package/src/media/props/wikiSelectValue.ts +30 -0
- package/src/media/props/wikiStatus.ts +29 -41
- package/src/media/props/wikiStyle.ts +154 -243
- package/src/media/props/wikiTechnical.ts +65 -0
- package/src/media/props/wikiText.ts +57 -0
- package/src/media/props/wikiTooltip.ts +53 -0
- package/src/media/props/wikiValue.ts +14 -203
- package/src/media/props/wikiWindow.ts +0 -31
- package/src/styles/storybookStyle.scss +3 -1
- package/src/types/storybookTypes.ts +26 -4
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
## Кнопки действий
|
|
2
|
+
|
|
3
|
+
Свойства `buttonOk`, `buttonClose` и `actionsList` управляют кнопками действий в диалоговом окне через встроенный компонент Actions.
|
|
4
|
+
|
|
5
|
+
**Свойства:**
|
|
6
|
+
|
|
7
|
+
- `buttonOk` — кнопка подтверждения
|
|
8
|
+
- `buttonClose` — кнопка закрытия
|
|
9
|
+
- `clickOkAndClose` — автоматическое закрытие диалога при нажатии кнопки OK
|
|
10
|
+
- `actionsList` — прямой доступ к списку кнопок компонента Actions
|
|
11
|
+
|
|
12
|
+
При `clickOkAndClose="true"` кнопка OK автоматически закрывает диалог после нажатия.
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<script setup>
|
|
16
|
+
import { ref } from 'vue'
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<template>
|
|
20
|
+
<!-- Базовое использование -->
|
|
21
|
+
<Dialog
|
|
22
|
+
buttonOk="Подтвердить"
|
|
23
|
+
buttonClose="Отмена"
|
|
24
|
+
label="Удаление файла"
|
|
25
|
+
@ok="handleDelete"
|
|
26
|
+
/>
|
|
27
|
+
|
|
28
|
+
<!-- Скрытие кнопки закрытия -->
|
|
29
|
+
<Dialog
|
|
30
|
+
buttonOk="Понятно"
|
|
31
|
+
:buttonClose="null"
|
|
32
|
+
label="Информация"
|
|
33
|
+
/>
|
|
34
|
+
|
|
35
|
+
<!-- Использование actionsList -->
|
|
36
|
+
<Dialog
|
|
37
|
+
:actionsList="[
|
|
38
|
+
{ label: 'Сохранить', onClick: handleSave },
|
|
39
|
+
{ label: 'Отмена', outline: true, onClick: handleCancel }
|
|
40
|
+
]"
|
|
41
|
+
label="Сохранение"
|
|
42
|
+
/>
|
|
43
|
+
</template>
|
|
44
|
+
```
|
|
45
|
+
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Component for creating modal dialog windows with icon support, titles, and predefined action buttons.
|
|
2
|
+
|
|
3
|
+
Dialog is a specialized wrapper over the Modal component with additional capabilities for displaying informational messages, confirmations, and notifications. The component automatically displays an information block with icon, title, and description, and provides predefined OK and Close buttons. Supports success and error states with automatic icon switching, image positioning, and full content customization.
|
|
4
|
+
|
|
5
|
+
**Key features:**
|
|
6
|
+
|
|
7
|
+
- Modal window with centering and background blocking
|
|
8
|
+
- Icon support with automatic switching for success/error states
|
|
9
|
+
- Information block with icon, title, and description
|
|
10
|
+
- Predefined OK and Close buttons with customization options
|
|
11
|
+
- Image positioning at top or left
|
|
12
|
+
- Integration with Window, Bars, Actions, Icon components
|
|
13
|
+
- Closing by ESC key and overlay click
|
|
14
|
+
- ok and close events for handling user actions
|
|
15
|
+
- Slot support for content customization
|
|
16
|
+
- Responsive design for mobile devices
|
|
17
|
+
|
|
18
|
+
**Common use cases:**
|
|
19
|
+
|
|
20
|
+
- User action confirmations
|
|
21
|
+
- Success or error notifications
|
|
22
|
+
- Informational messages
|
|
23
|
+
- Warnings and alerts
|
|
24
|
+
- Simple forms with minimal fields
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<script setup>
|
|
28
|
+
import { ref } from 'vue'
|
|
29
|
+
|
|
30
|
+
const isOpen = ref(false)
|
|
31
|
+
const showSuccess = ref(false)
|
|
32
|
+
|
|
33
|
+
const handleConfirm = () => {
|
|
34
|
+
console.log('Action confirmed')
|
|
35
|
+
isOpen.value = false
|
|
36
|
+
showSuccess.value = true
|
|
37
|
+
}
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<template>
|
|
41
|
+
<button @click="isOpen = true">Open Dialog</button>
|
|
42
|
+
|
|
43
|
+
<Dialog
|
|
44
|
+
v-model:open="isOpen"
|
|
45
|
+
label="Confirmation"
|
|
46
|
+
description="Are you sure you want to perform this action?"
|
|
47
|
+
@ok="handleConfirm"
|
|
48
|
+
@close="isOpen = false"
|
|
49
|
+
>
|
|
50
|
+
<template #default>
|
|
51
|
+
<div class="additional-info">
|
|
52
|
+
Additional information can be placed here.
|
|
53
|
+
</div>
|
|
54
|
+
</template>
|
|
55
|
+
</Dialog>
|
|
56
|
+
|
|
57
|
+
<Dialog
|
|
58
|
+
v-model:open="showSuccess"
|
|
59
|
+
:success="true"
|
|
60
|
+
label="Success"
|
|
61
|
+
description="Your action has been completed successfully."
|
|
62
|
+
:buttonClose="null"
|
|
63
|
+
/>
|
|
64
|
+
</template>
|
|
65
|
+
```
|
|
66
|
+
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Компонент для создания модальных диалоговых окон с поддержкой иконок, заголовков и предустановленных кнопок действий.
|
|
2
|
+
|
|
3
|
+
Dialog представляет собой специализированную обертку над компонентом Modal с дополнительными возможностями для отображения информационных сообщений, подтверждений и уведомлений. Компонент автоматически отображает информационный блок с иконкой, заголовком и описанием, а также предоставляет предустановленные кнопки OK и Закрыть. Поддерживает состояния успеха и ошибки с автоматическим переключением иконок, позиционирование изображения и полную кастомизацию контента.
|
|
4
|
+
|
|
5
|
+
**Основные возможности:**
|
|
6
|
+
|
|
7
|
+
- Модальное окно с центрированием и блокировкой фона
|
|
8
|
+
- Поддержка иконок с автоматическим переключением для состояний успеха/ошибки
|
|
9
|
+
- Информационный блок с иконкой, заголовком и описанием
|
|
10
|
+
- Предустановленные кнопки OK и Закрыть с возможностью кастомизации
|
|
11
|
+
- Позиционирование изображения сверху или слева
|
|
12
|
+
- Интеграция с компонентами Window, Bars, Actions, Icon
|
|
13
|
+
- Закрытие по ESC и клику на overlay
|
|
14
|
+
- События ok и close для обработки действий пользователя
|
|
15
|
+
- Поддержка слотов для кастомизации контента
|
|
16
|
+
- Адаптивный дизайн для мобильных устройств
|
|
17
|
+
|
|
18
|
+
**Типичные сценарии использования:**
|
|
19
|
+
|
|
20
|
+
- Подтверждения действий пользователя
|
|
21
|
+
- Уведомления об успехе или ошибке
|
|
22
|
+
- Информационные сообщения
|
|
23
|
+
- Предупреждения и алерты
|
|
24
|
+
- Простые формы с минимальным количеством полей
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<script setup>
|
|
28
|
+
import { ref } from 'vue'
|
|
29
|
+
|
|
30
|
+
const isOpen = ref(false)
|
|
31
|
+
const showSuccess = ref(false)
|
|
32
|
+
|
|
33
|
+
const handleConfirm = () => {
|
|
34
|
+
console.log('Действие подтверждено')
|
|
35
|
+
isOpen.value = false
|
|
36
|
+
showSuccess.value = true
|
|
37
|
+
}
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<template>
|
|
41
|
+
<button @click="isOpen = true">Открыть диалог</button>
|
|
42
|
+
|
|
43
|
+
<Dialog
|
|
44
|
+
v-model:open="isOpen"
|
|
45
|
+
label="Подтверждение"
|
|
46
|
+
description="Вы уверены, что хотите выполнить это действие?"
|
|
47
|
+
@ok="handleConfirm"
|
|
48
|
+
@close="isOpen = false"
|
|
49
|
+
>
|
|
50
|
+
<template #default>
|
|
51
|
+
<div class="additional-info">
|
|
52
|
+
Дополнительная информация может быть размещена здесь.
|
|
53
|
+
</div>
|
|
54
|
+
</template>
|
|
55
|
+
</Dialog>
|
|
56
|
+
|
|
57
|
+
<Dialog
|
|
58
|
+
v-model:open="showSuccess"
|
|
59
|
+
:success="true"
|
|
60
|
+
label="Успешно"
|
|
61
|
+
description="Ваше действие выполнено успешно."
|
|
62
|
+
:buttonClose="null"
|
|
63
|
+
/>
|
|
64
|
+
</template>
|
|
65
|
+
```
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
|
|
2
|
+
### `ok`
|
|
3
|
+
|
|
4
|
+
Event fires when the confirmation (OK) button in the dialog is clicked.
|
|
5
|
+
|
|
6
|
+
**Parameters:**
|
|
7
|
+
Event does not pass parameters.
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<script setup>
|
|
11
|
+
import { ref } from 'vue'
|
|
12
|
+
|
|
13
|
+
const showDialog = ref(false)
|
|
14
|
+
|
|
15
|
+
const handleOk = () => {
|
|
16
|
+
console.log('User confirmed action')
|
|
17
|
+
showDialog.value = false
|
|
18
|
+
// Execute action after confirmation
|
|
19
|
+
}
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<template>
|
|
23
|
+
<Dialog
|
|
24
|
+
v-model:open="showDialog"
|
|
25
|
+
buttonOk="Confirm"
|
|
26
|
+
label="Delete file"
|
|
27
|
+
description="Are you sure you want to delete this file?"
|
|
28
|
+
@ok="handleOk"
|
|
29
|
+
/>
|
|
30
|
+
</template>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### `close`
|
|
34
|
+
|
|
35
|
+
Event fires when the close button in the dialog is clicked.
|
|
36
|
+
|
|
37
|
+
**Parameters:**
|
|
38
|
+
Event does not pass parameters.
|
|
39
|
+
|
|
40
|
+
```html
|
|
41
|
+
<script setup>
|
|
42
|
+
import { ref } from 'vue'
|
|
43
|
+
|
|
44
|
+
const showDialog = ref(false)
|
|
45
|
+
|
|
46
|
+
const handleClose = () => {
|
|
47
|
+
console.log('User cancelled action')
|
|
48
|
+
showDialog.value = false
|
|
49
|
+
}
|
|
50
|
+
</script>
|
|
51
|
+
|
|
52
|
+
<template>
|
|
53
|
+
<Dialog
|
|
54
|
+
v-model:open="showDialog"
|
|
55
|
+
buttonClose="Cancel"
|
|
56
|
+
label="Confirmation"
|
|
57
|
+
@close="handleClose"
|
|
58
|
+
/>
|
|
59
|
+
</template>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
> Buttons can be configured via `buttonOk` and `buttonClose` properties, or hidden by passing `null`.
|
|
63
|
+
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
|
|
2
|
+
### `ok`
|
|
3
|
+
|
|
4
|
+
Событие срабатывает при клике на кнопку подтверждения (OK) в диалоговом окне.
|
|
5
|
+
|
|
6
|
+
**Параметры:**
|
|
7
|
+
Событие не передаёт параметров.
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<script setup>
|
|
11
|
+
import { ref } from 'vue'
|
|
12
|
+
|
|
13
|
+
const showDialog = ref(false)
|
|
14
|
+
|
|
15
|
+
const handleOk = () => {
|
|
16
|
+
console.log('Пользователь подтвердил действие')
|
|
17
|
+
showDialog.value = false
|
|
18
|
+
// Выполнение действия после подтверждения
|
|
19
|
+
}
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<template>
|
|
23
|
+
<Dialog
|
|
24
|
+
v-model:open="showDialog"
|
|
25
|
+
buttonOk="Подтвердить"
|
|
26
|
+
label="Удаление файла"
|
|
27
|
+
description="Вы действительно хотите удалить этот файл?"
|
|
28
|
+
@ok="handleOk"
|
|
29
|
+
/>
|
|
30
|
+
</template>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### `close`
|
|
34
|
+
|
|
35
|
+
Событие срабатывает при клике на кнопку закрытия в диалоговом окне.
|
|
36
|
+
|
|
37
|
+
**Параметры:**
|
|
38
|
+
Событие не передаёт параметров.
|
|
39
|
+
|
|
40
|
+
```html
|
|
41
|
+
<script setup>
|
|
42
|
+
import { ref } from 'vue'
|
|
43
|
+
|
|
44
|
+
const showDialog = ref(false)
|
|
45
|
+
|
|
46
|
+
const handleClose = () => {
|
|
47
|
+
console.log('Пользователь отменил действие')
|
|
48
|
+
showDialog.value = false
|
|
49
|
+
}
|
|
50
|
+
</script>
|
|
51
|
+
|
|
52
|
+
<template>
|
|
53
|
+
<Dialog
|
|
54
|
+
v-model:open="showDialog"
|
|
55
|
+
buttonClose="Отмена"
|
|
56
|
+
label="Подтверждение"
|
|
57
|
+
@close="handleClose"
|
|
58
|
+
/>
|
|
59
|
+
</template>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
> Кнопки можно настроить через свойства `buttonOk` и `buttonClose`, либо скрыть, передав `null`.
|
|
63
|
+
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
## Success and error states
|
|
2
|
+
|
|
3
|
+
Properties `success`, `error`, `iconSuccess` and `iconError` are designed to control the visual state of the dialog and automatically display corresponding icons.
|
|
4
|
+
|
|
5
|
+
**Properties:**
|
|
6
|
+
|
|
7
|
+
- `success` — sets the dialog to success state with automatic icon
|
|
8
|
+
- `error` — sets the dialog to error state with automatic icon
|
|
9
|
+
- `iconSuccess` — sets the icon for success state (default 'check_circle')
|
|
10
|
+
- `iconError` — sets the icon for error state (default 'error')
|
|
11
|
+
|
|
12
|
+
Properties work together: if `success` or `error` are not set or equal to `false`, the dialog is displayed in a neutral state. When `success="true"` is activated, the component automatically displays the success icon from `iconSuccess`. When `error="true"` is activated, the error icon from `iconError` is displayed. Properties `iconSuccess` and `iconError` allow overriding standard icons with custom ones, providing flexibility in visual design of dialog messages.
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<script setup>
|
|
16
|
+
import { ref } from 'vue'
|
|
17
|
+
|
|
18
|
+
const showSuccess = ref(false)
|
|
19
|
+
const showError = ref(false)
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<template>
|
|
23
|
+
<!-- Success dialog -->
|
|
24
|
+
<Dialog
|
|
25
|
+
v-model:open="showSuccess"
|
|
26
|
+
:success="true"
|
|
27
|
+
label="Operation completed"
|
|
28
|
+
description="Your changes have been saved successfully."
|
|
29
|
+
/>
|
|
30
|
+
|
|
31
|
+
<!-- Error dialog -->
|
|
32
|
+
<Dialog
|
|
33
|
+
v-model:open="showError"
|
|
34
|
+
:error="true"
|
|
35
|
+
label="Operation failed"
|
|
36
|
+
description="Unable to complete the operation. Please try again."
|
|
37
|
+
/>
|
|
38
|
+
|
|
39
|
+
<!-- With custom icons -->
|
|
40
|
+
<Dialog
|
|
41
|
+
v-model:open="showSuccess"
|
|
42
|
+
:success="true"
|
|
43
|
+
iconSuccess="done_all"
|
|
44
|
+
label="All done"
|
|
45
|
+
description="Process completed successfully."
|
|
46
|
+
/>
|
|
47
|
+
|
|
48
|
+
<!-- Error with custom icon -->
|
|
49
|
+
<Dialog
|
|
50
|
+
v-model:open="showError"
|
|
51
|
+
:error="true"
|
|
52
|
+
iconError="warning"
|
|
53
|
+
label="Warning"
|
|
54
|
+
description="Issues detected during data processing."
|
|
55
|
+
/>
|
|
56
|
+
</template>
|
|
57
|
+
```
|
|
58
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
## Состояния успеха и ошибки
|
|
2
|
+
|
|
3
|
+
Свойства `success`, `error`, `iconSuccess` и `iconError` предназначены для управления визуальным состоянием диалога и автоматического отображения соответствующих иконок.
|
|
4
|
+
|
|
5
|
+
**Свойства:**
|
|
6
|
+
|
|
7
|
+
- `success` — переводит диалог в состояние успеха с автоматической иконкой
|
|
8
|
+
- `error` — переводит диалог в состояние ошибки с автоматической иконкой
|
|
9
|
+
- `iconSuccess` — задаёт иконку для состояния успеха (по умолчанию 'check_circle')
|
|
10
|
+
- `iconError` — задаёт иконку для состояния ошибки (по умолчанию 'error')
|
|
11
|
+
|
|
12
|
+
Свойства работают совместно: если `success` или `error` не заданы или равны `false`, диалог отображается в нейтральном состоянии. При активации `success="true"`, компонент автоматически отображает иконку успеха из `iconSuccess`. При активации `error="true"`, отображается иконка ошибки из `iconError`. Свойства `iconSuccess` и `iconError` позволяют переопределить стандартные иконки на пользовательские, обеспечивая гибкость визуального оформления диалоговых сообщений.
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<script setup>
|
|
16
|
+
import { ref } from 'vue'
|
|
17
|
+
|
|
18
|
+
const showSuccess = ref(false)
|
|
19
|
+
const showError = ref(false)
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<template>
|
|
23
|
+
<!-- Диалог успеха -->
|
|
24
|
+
<Dialog
|
|
25
|
+
v-model:open="showSuccess"
|
|
26
|
+
:success="true"
|
|
27
|
+
label="Операция выполнена"
|
|
28
|
+
description="Ваши изменения успешно сохранены."
|
|
29
|
+
/>
|
|
30
|
+
|
|
31
|
+
<!-- Диалог ошибки -->
|
|
32
|
+
<Dialog
|
|
33
|
+
v-model:open="showError"
|
|
34
|
+
:error="true"
|
|
35
|
+
label="Ошибка выполнения"
|
|
36
|
+
description="Не удалось выполнить операцию. Попробуйте ещё раз."
|
|
37
|
+
/>
|
|
38
|
+
|
|
39
|
+
<!-- С пользовательскими иконками -->
|
|
40
|
+
<Dialog
|
|
41
|
+
v-model:open="showSuccess"
|
|
42
|
+
:success="true"
|
|
43
|
+
iconSuccess="done_all"
|
|
44
|
+
label="Всё готово"
|
|
45
|
+
description="Процесс завершён успешно."
|
|
46
|
+
/>
|
|
47
|
+
|
|
48
|
+
<!-- Ошибка с кастомной иконкой -->
|
|
49
|
+
<Dialog
|
|
50
|
+
v-model:open="showError"
|
|
51
|
+
:error="true"
|
|
52
|
+
iconError="warning"
|
|
53
|
+
label="Внимание"
|
|
54
|
+
description="Обнаружены проблемы при обработке данных."
|
|
55
|
+
/>
|
|
56
|
+
</template>
|
|
57
|
+
```
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { StorybookComponentsMdxItem } from '../../../types/storybookTypes'
|
|
2
|
+
|
|
3
|
+
import dialogEn from './dialog.en.mdx'
|
|
4
|
+
import dialogRu from './dialog.ru.mdx'
|
|
5
|
+
import statesEn from './states.en.mdx'
|
|
6
|
+
import statesRu from './states.ru.mdx'
|
|
7
|
+
import buttonsEn from './buttons.en.mdx'
|
|
8
|
+
import buttonsRu from './buttons.ru.mdx'
|
|
9
|
+
import eventsEn from './events.en.mdx'
|
|
10
|
+
import eventsRu from './events.ru.mdx'
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* MDX files for Dialog component
|
|
14
|
+
*
|
|
15
|
+
* MDX файлы для компонента Dialog
|
|
16
|
+
*/
|
|
17
|
+
export const wikiMdxDialog: StorybookComponentsMdxItem = {
|
|
18
|
+
name: 'Dialog',
|
|
19
|
+
descriptions: {
|
|
20
|
+
dialog: {
|
|
21
|
+
en: dialogEn,
|
|
22
|
+
ru: dialogRu
|
|
23
|
+
},
|
|
24
|
+
states: {
|
|
25
|
+
en: statesEn,
|
|
26
|
+
ru: statesRu
|
|
27
|
+
},
|
|
28
|
+
buttons: {
|
|
29
|
+
en: buttonsEn,
|
|
30
|
+
ru: buttonsRu
|
|
31
|
+
},
|
|
32
|
+
events: {
|
|
33
|
+
en: eventsEn,
|
|
34
|
+
ru: eventsRu
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
## Navigation and arrows
|
|
2
2
|
|
|
3
|
-
Properties `arrowCarousel`, `arrowStepper`, `
|
|
3
|
+
Properties `arrowCarousel`, `arrowStepper`, `arrowAlign`, `disabledPrevious`, and `disabledNext` are designed to control built-in navigation elements.
|
|
4
4
|
|
|
5
5
|
**Properties:**
|
|
6
6
|
|
|
7
7
|
- `arrowCarousel` — enables navigation arrows (left/right) for switching elements
|
|
8
8
|
- `arrowStepper` — enables numeric step buttons (minus/plus)
|
|
9
|
+
- `arrowAlign` — controls horizontal position of navigation arrows (`left`, `center`, `right`)
|
|
9
10
|
- `disabledPrevious` — disables the left button (back/minus)
|
|
10
11
|
- `disabledNext` — disables the right button (forward/plus)
|
|
11
|
-
- `align` — horizontal content alignment (`left`, `center`, `right`)
|
|
12
12
|
|
|
13
|
-
Properties work together: only one arrow mode is active — if `arrowCarousel = true`, the `arrowStepper` mode is ignored and vice versa. When navigation mode is active, the clear button (`cancel`) is automatically hidden, as the control area takes priority. The `disabledPrevious` and `disabledNext` flags apply only to the currently active arrow mode.
|
|
13
|
+
Properties work together: only one arrow mode is active — if `arrowCarousel = true`, the `arrowStepper` mode is ignored and vice versa. When navigation mode is active, the clear button (`cancel`) is automatically hidden, as the control area takes priority. The `disabledPrevious` and `disabledNext` flags apply only to the currently active arrow mode.
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
16
|
<script setup>
|
|
@@ -39,11 +39,10 @@ const count = ref(5)
|
|
|
39
39
|
</template>
|
|
40
40
|
</Field>
|
|
41
41
|
|
|
42
|
-
<!-- Numeric stepper
|
|
42
|
+
<!-- Numeric stepper -->
|
|
43
43
|
<Field
|
|
44
44
|
label="Quantity"
|
|
45
45
|
arrow-stepper
|
|
46
|
-
align="center"
|
|
47
46
|
:disabled-previous="count <= 0"
|
|
48
47
|
:disabled-next="count >= 99"
|
|
49
48
|
>
|
|
@@ -57,10 +56,27 @@ const count = ref(5)
|
|
|
57
56
|
</template>
|
|
58
57
|
</Field>
|
|
59
58
|
|
|
60
|
-
<!-- Stepper
|
|
59
|
+
<!-- Stepper with left-aligned arrows -->
|
|
61
60
|
<Field
|
|
62
61
|
label="Value"
|
|
63
62
|
arrow-stepper
|
|
63
|
+
arrow-align="left"
|
|
64
|
+
>
|
|
65
|
+
<template #default="{ id, className }">
|
|
66
|
+
<input
|
|
67
|
+
:id="id"
|
|
68
|
+
:class="className"
|
|
69
|
+
:value="count"
|
|
70
|
+
readonly
|
|
71
|
+
/>
|
|
72
|
+
</template>
|
|
73
|
+
</Field>
|
|
74
|
+
|
|
75
|
+
<!-- Stepper with centered arrows -->
|
|
76
|
+
<Field
|
|
77
|
+
label="Value"
|
|
78
|
+
arrow-stepper
|
|
79
|
+
arrow-align="center"
|
|
64
80
|
>
|
|
65
81
|
<template #default="{ id, className }">
|
|
66
82
|
<input
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
## Навигация и стрелки
|
|
2
2
|
|
|
3
|
-
Свойства `arrowCarousel`, `arrowStepper`, `
|
|
3
|
+
Свойства `arrowCarousel`, `arrowStepper`, `arrowAlign`, `disabledPrevious` и `disabledNext` предназначены для управления встроенными элементами навигации.
|
|
4
4
|
|
|
5
5
|
**Свойства:**
|
|
6
6
|
|
|
7
7
|
- `arrowCarousel` — включает стрелки навигации (влево/вправо) для переключения элементов
|
|
8
8
|
- `arrowStepper` — включает числовые шаговые кнопки (минус/плюс)
|
|
9
|
+
- `arrowAlign` — управляет горизонтальным расположением стрелок навигации (`left`, `center`, `right`)
|
|
9
10
|
- `disabledPrevious` — отключает левую кнопку (назад/минус)
|
|
10
11
|
- `disabledNext` — отключает правую кнопку (вперёд/плюс)
|
|
11
|
-
- `align` — горизонтальное выравнивание содержимого (`left`, `center`, `right`)
|
|
12
12
|
|
|
13
|
-
Свойства работают совместно: активен только один режим стрелок — если `arrowCarousel = true`, режим `arrowStepper` игнорируется и наоборот. При активном режиме навигации кнопка очистки (`cancel`) автоматически скрывается, так как область управления имеет приоритет. Флаги `disabledPrevious` и `disabledNext` применяются только к текущему активному режиму стрелок.
|
|
13
|
+
Свойства работают совместно: активен только один режим стрелок — если `arrowCarousel = true`, режим `arrowStepper` игнорируется и наоборот. При активном режиме навигации кнопка очистки (`cancel`) автоматически скрывается, так как область управления имеет приоритет. Флаги `disabledPrevious` и `disabledNext` применяются только к текущему активному режиму стрелок.
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
16
|
<script setup>
|
|
@@ -39,11 +39,10 @@ const count = ref(5)
|
|
|
39
39
|
</template>
|
|
40
40
|
</Field>
|
|
41
41
|
|
|
42
|
-
<!-- Числовой степпер
|
|
42
|
+
<!-- Числовой степпер -->
|
|
43
43
|
<Field
|
|
44
44
|
label="Количество"
|
|
45
45
|
arrow-stepper
|
|
46
|
-
align="center"
|
|
47
46
|
:disabled-previous="count <= 0"
|
|
48
47
|
:disabled-next="count >= 99"
|
|
49
48
|
>
|
|
@@ -57,10 +56,27 @@ const count = ref(5)
|
|
|
57
56
|
</template>
|
|
58
57
|
</Field>
|
|
59
58
|
|
|
60
|
-
<!-- Степпер
|
|
59
|
+
<!-- Степпер со стрелками слева -->
|
|
61
60
|
<Field
|
|
62
61
|
label="Значение"
|
|
63
62
|
arrow-stepper
|
|
63
|
+
arrow-align="left"
|
|
64
|
+
>
|
|
65
|
+
<template #default="{ id, className }">
|
|
66
|
+
<input
|
|
67
|
+
:id="id"
|
|
68
|
+
:class="className"
|
|
69
|
+
:value="count"
|
|
70
|
+
readonly
|
|
71
|
+
/>
|
|
72
|
+
</template>
|
|
73
|
+
</Field>
|
|
74
|
+
|
|
75
|
+
<!-- Степпер с центрированными стрелками -->
|
|
76
|
+
<Field
|
|
77
|
+
label="Значение"
|
|
78
|
+
arrow-stepper
|
|
79
|
+
arrow-align="center"
|
|
64
80
|
>
|
|
65
81
|
<template #default="{ id, className }">
|
|
66
82
|
<input
|
|
@@ -5,19 +5,6 @@ Slot for placing the main input element (input, select, textarea, etc.). Require
|
|
|
5
5
|
**Parameters:**
|
|
6
6
|
- `props: FieldControl` — object with data for binding the input element
|
|
7
7
|
|
|
8
|
-
### `leading`
|
|
9
|
-
|
|
10
|
-
Slot for placing content at the start of the interactive field area, before the main input element.
|
|
11
|
-
|
|
12
|
-
**Parameters:**
|
|
13
|
-
- `props: FieldControl` — object with data for binding
|
|
14
|
-
|
|
15
|
-
### `trailing`
|
|
16
|
-
|
|
17
|
-
Slot for placing content at the end of the interactive field area, after the main input element.
|
|
18
|
-
|
|
19
|
-
**Parameters:**
|
|
20
|
-
- `props: FieldControl` — object with data for binding
|
|
21
8
|
|
|
22
9
|
## FieldControl
|
|
23
10
|
|
|
@@ -5,19 +5,6 @@
|
|
|
5
5
|
**Параметры:**
|
|
6
6
|
- `props: FieldControl` — объект с данными для связывания элемента ввода
|
|
7
7
|
|
|
8
|
-
### `leading`
|
|
9
|
-
|
|
10
|
-
Слот для размещения контента в начале интерактивной области поля, перед основным элементом ввода.
|
|
11
|
-
|
|
12
|
-
**Параметры:**
|
|
13
|
-
- `props: FieldControl` — объект с данными для связывания
|
|
14
|
-
|
|
15
|
-
### `trailing`
|
|
16
|
-
|
|
17
|
-
Слот для размещения контента в конце интерактивной области поля, после основного элемента ввода.
|
|
18
|
-
|
|
19
|
-
**Параметры:**
|
|
20
|
-
- `props: FieldControl` — объект с данными для связывания
|
|
21
8
|
|
|
22
9
|
## FieldControl
|
|
23
10
|
|