@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,64 @@
|
|
|
1
|
+
Component for displaying selected values in selection controls with support for single and multiple modes.
|
|
2
|
+
|
|
3
|
+
SelectValue manages the visualization of selected items, automatically switching between text display for single selection and chips for multiple selection. The component integrates with the event system to handle user actions, supports icon display, placeholders, and cancel buttons for selections.
|
|
4
|
+
|
|
5
|
+
**Key features:**
|
|
6
|
+
|
|
7
|
+
- Automatic switching between single and multiple selection modes
|
|
8
|
+
- Chip rendering with customizable appearance for multiple selections
|
|
9
|
+
- Placeholder support for empty state
|
|
10
|
+
- Icon display in selected items
|
|
11
|
+
- Cancel buttons for removing individual selections
|
|
12
|
+
- Integration with Chip component for element styling
|
|
13
|
+
- Handling disabled and readonly states
|
|
14
|
+
|
|
15
|
+
**Typical use cases:**
|
|
16
|
+
|
|
17
|
+
- Displaying selected options in selects and comboboxes
|
|
18
|
+
- Visualizing multiple selections in lists
|
|
19
|
+
- Showing active filters with removal capability
|
|
20
|
+
- Displaying tags and categories
|
|
21
|
+
- Representing selected elements in forms
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<script setup>
|
|
25
|
+
import { ref } from 'vue'
|
|
26
|
+
|
|
27
|
+
const selectedSingle = ref([
|
|
28
|
+
{ label: 'JavaScript', value: 'js', icon: 'code', index: '1' }
|
|
29
|
+
])
|
|
30
|
+
|
|
31
|
+
const selectedMultiple = ref([
|
|
32
|
+
{ label: 'React', value: 'react', icon: 'favorite', index: '1' },
|
|
33
|
+
{ label: 'Vue.js', value: 'vue', icon: 'star', index: '2' }
|
|
34
|
+
])
|
|
35
|
+
|
|
36
|
+
const handleClick = (event) => {
|
|
37
|
+
console.log('Element clicked:', event)
|
|
38
|
+
}
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
<template>
|
|
42
|
+
<!-- Single selection -->
|
|
43
|
+
<SelectValue
|
|
44
|
+
:value="selectedSingle"
|
|
45
|
+
:icon-show="true"
|
|
46
|
+
@click="handleClick"
|
|
47
|
+
/>
|
|
48
|
+
|
|
49
|
+
<!-- Multiple selection with chips -->
|
|
50
|
+
<SelectValue
|
|
51
|
+
:value="selectedMultiple"
|
|
52
|
+
:multiple="true"
|
|
53
|
+
:icon-show="true"
|
|
54
|
+
icon-cancel="close"
|
|
55
|
+
@click="handleClick"
|
|
56
|
+
/>
|
|
57
|
+
|
|
58
|
+
<!-- With placeholder -->
|
|
59
|
+
<SelectValue
|
|
60
|
+
placeholder="Select a value"
|
|
61
|
+
/>
|
|
62
|
+
</template>
|
|
63
|
+
```
|
|
64
|
+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
Компонент для отображения выбранных значений в элементах управления выбором с поддержкой одиночного и множественного режимов.
|
|
2
|
+
|
|
3
|
+
SelectValue управляет визуализацией выбранных элементов, автоматически переключаясь между текстовым отображением для одиночного выбора и чипами для множественного. Компонент интегрируется с системой событий для обработки действий пользователя, поддерживает отображение иконок, плейсхолдеров и кнопок отмены выбора.
|
|
4
|
+
|
|
5
|
+
**Основные возможности:**
|
|
6
|
+
|
|
7
|
+
- Автоматическое переключение между режимами одиночного и множественного выбора
|
|
8
|
+
- Рендеринг чипов с настраиваемым внешним видом для множественного выбора
|
|
9
|
+
- Поддержка плейсхолдера для пустого состояния
|
|
10
|
+
- Отображение иконок в выбранных элементах
|
|
11
|
+
- Кнопки отмены для удаления отдельных выборов
|
|
12
|
+
- Интеграция с Chip компонентом для стилизации элементов
|
|
13
|
+
- Обработка состояний disabled и readonly
|
|
14
|
+
|
|
15
|
+
**Типичные сценарии использования:**
|
|
16
|
+
|
|
17
|
+
- Отображение выбранных опций в селектах и комбобоксах
|
|
18
|
+
- Визуализация множественного выбора в списках
|
|
19
|
+
- Показ активных фильтров с возможностью удаления
|
|
20
|
+
- Отображение тегов и категорий
|
|
21
|
+
- Представление выбранных элементов в формах
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<script setup>
|
|
25
|
+
import { ref } from 'vue'
|
|
26
|
+
|
|
27
|
+
const selectedSingle = ref([
|
|
28
|
+
{ label: 'JavaScript', value: 'js', icon: 'code', index: '1' }
|
|
29
|
+
])
|
|
30
|
+
|
|
31
|
+
const selectedMultiple = ref([
|
|
32
|
+
{ label: 'React', value: 'react', icon: 'favorite', index: '1' },
|
|
33
|
+
{ label: 'Vue.js', value: 'vue', icon: 'star', index: '2' }
|
|
34
|
+
])
|
|
35
|
+
|
|
36
|
+
const handleClick = (event) => {
|
|
37
|
+
console.log('Клик по элементу:', event)
|
|
38
|
+
}
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
<template>
|
|
42
|
+
<!-- Одиночный выбор -->
|
|
43
|
+
<SelectValue
|
|
44
|
+
:value="selectedSingle"
|
|
45
|
+
:icon-show="true"
|
|
46
|
+
@click="handleClick"
|
|
47
|
+
/>
|
|
48
|
+
|
|
49
|
+
<!-- Множественный выбор с чипами -->
|
|
50
|
+
<SelectValue
|
|
51
|
+
:value="selectedMultiple"
|
|
52
|
+
:multiple="true"
|
|
53
|
+
:icon-show="true"
|
|
54
|
+
icon-cancel="close"
|
|
55
|
+
@click="handleClick"
|
|
56
|
+
/>
|
|
57
|
+
|
|
58
|
+
<!-- С плейсхолдером -->
|
|
59
|
+
<SelectValue
|
|
60
|
+
placeholder="Выберите значение"
|
|
61
|
+
/>
|
|
62
|
+
</template>
|
|
63
|
+
```
|
|
64
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StorybookComponentsMdxItem } from '../../../types/storybookTypes'
|
|
2
|
+
|
|
3
|
+
import selectValueEn from './selectValue.en.mdx'
|
|
4
|
+
import selectValueRu from './selectValue.ru.mdx'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* MDX files for SelectValue component
|
|
8
|
+
*
|
|
9
|
+
* MDX файлы для компонента SelectValue
|
|
10
|
+
*/
|
|
11
|
+
export const wikiMdxSelectValue: StorybookComponentsMdxItem = {
|
|
12
|
+
name: 'SelectValue',
|
|
13
|
+
descriptions: {
|
|
14
|
+
selectValue: {
|
|
15
|
+
en: selectValueEn,
|
|
16
|
+
ru: selectValueRu
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Text field component that automatically adjusts its height based on content.
|
|
2
|
+
|
|
3
|
+
TextareaAutosize provides a multi-line text field that dynamically changes its height depending on the amount of entered text. The component uses a hidden clone element for precise height calculation, taking into account all padding and styles of the original textarea. This ensures smooth and natural behavior when entering text without manual height adjustment.
|
|
4
|
+
|
|
5
|
+
**Key features:**
|
|
6
|
+
|
|
7
|
+
- Automatic height adjustment based on content
|
|
8
|
+
- Precise size calculation considering padding and styles
|
|
9
|
+
- Smooth height transitions on content change
|
|
10
|
+
- Optional autosize toggle for fixed height
|
|
11
|
+
- Support for all standard textarea attributes
|
|
12
|
+
- Reactive value binding with input events
|
|
13
|
+
- Optimized performance through requestAnimationFrame
|
|
14
|
+
|
|
15
|
+
**Common use cases:**
|
|
16
|
+
|
|
17
|
+
- Comment and review fields
|
|
18
|
+
- Feedback forms with long texts
|
|
19
|
+
- Description and notes editors
|
|
20
|
+
- Chats and messengers
|
|
21
|
+
- Forms with dynamic content
|
|
22
|
+
- Multi-line fields in adaptive interfaces
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<script setup>
|
|
26
|
+
import { ref } from 'vue'
|
|
27
|
+
|
|
28
|
+
const message = ref('')
|
|
29
|
+
|
|
30
|
+
const handleInput = (event) => {
|
|
31
|
+
console.log('Current value:', event.target.value)
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<template>
|
|
36
|
+
<div class="form">
|
|
37
|
+
<TextareaAutosize
|
|
38
|
+
v-model="message"
|
|
39
|
+
:inputAttrs="{
|
|
40
|
+
placeholder: 'Enter your message...',
|
|
41
|
+
maxlength: 500
|
|
42
|
+
}"
|
|
43
|
+
@input="handleInput"
|
|
44
|
+
/>
|
|
45
|
+
|
|
46
|
+
<TextareaAutosize
|
|
47
|
+
value="Text field with fixed height"
|
|
48
|
+
:autosize="false"
|
|
49
|
+
:inputAttrs="{
|
|
50
|
+
placeholder: 'Height does not change',
|
|
51
|
+
rows: 3
|
|
52
|
+
}"
|
|
53
|
+
/>
|
|
54
|
+
|
|
55
|
+
<TextareaAutosize
|
|
56
|
+
:inputAttrs="{
|
|
57
|
+
placeholder: 'Comment',
|
|
58
|
+
'aria-label': 'Comment field',
|
|
59
|
+
required: true
|
|
60
|
+
}"
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
63
|
+
</template>
|
|
64
|
+
```
|
|
65
|
+
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Компонент текстового поля с автоматической подстройкой высоты под содержимое.
|
|
2
|
+
|
|
3
|
+
TextareaAutosize предоставляет многострочное текстовое поле, которое динамически изменяет свою высоту в зависимости от объёма введённого текста. Компонент использует скрытый элемент-клон для точного расчёта необходимой высоты, учитывая все отступы и стили исходного textarea. Это обеспечивает плавное и естественное поведение при вводе текста без ручной настройки высоты.
|
|
4
|
+
|
|
5
|
+
**Основные возможности:**
|
|
6
|
+
|
|
7
|
+
- Автоматическая подстройка высоты под содержимое
|
|
8
|
+
- Точный расчёт размера с учётом padding и стилей
|
|
9
|
+
- Плавные переходы высоты при изменении контента
|
|
10
|
+
- Опциональное отключение autosize для фиксированной высоты
|
|
11
|
+
- Поддержка всех стандартных атрибутов textarea
|
|
12
|
+
- Реактивная привязка значения с событиями input
|
|
13
|
+
- Оптимизированная производительность через requestAnimationFrame
|
|
14
|
+
|
|
15
|
+
**Типичные сценарии использования:**
|
|
16
|
+
|
|
17
|
+
- Поля для комментариев и отзывов
|
|
18
|
+
- Формы обратной связи с длинными текстами
|
|
19
|
+
- Редакторы описаний и заметок
|
|
20
|
+
- Чаты и мессенджеры
|
|
21
|
+
- Формы с динамическим контентом
|
|
22
|
+
- Многострочные поля в адаптивных интерфейсах
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<script setup>
|
|
26
|
+
import { ref } from 'vue'
|
|
27
|
+
|
|
28
|
+
const message = ref('')
|
|
29
|
+
|
|
30
|
+
const handleInput = (event) => {
|
|
31
|
+
console.log('Текущее значение:', event.target.value)
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<template>
|
|
36
|
+
<div class="form">
|
|
37
|
+
<TextareaAutosize
|
|
38
|
+
v-model="message"
|
|
39
|
+
:inputAttrs="{
|
|
40
|
+
placeholder: 'Введите ваше сообщение...',
|
|
41
|
+
maxlength: 500
|
|
42
|
+
}"
|
|
43
|
+
@input="handleInput"
|
|
44
|
+
/>
|
|
45
|
+
|
|
46
|
+
<TextareaAutosize
|
|
47
|
+
value="Текстовое поле с фиксированной высотой"
|
|
48
|
+
:autosize="false"
|
|
49
|
+
:inputAttrs="{
|
|
50
|
+
placeholder: 'Высота не изменяется',
|
|
51
|
+
rows: 3
|
|
52
|
+
}"
|
|
53
|
+
/>
|
|
54
|
+
|
|
55
|
+
<TextareaAutosize
|
|
56
|
+
:inputAttrs="{
|
|
57
|
+
placeholder: 'Комментарий',
|
|
58
|
+
'aria-label': 'Поле комментария',
|
|
59
|
+
required: true
|
|
60
|
+
}"
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
63
|
+
</template>
|
|
64
|
+
```
|
|
65
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StorybookComponentsMdxItem } from '../../../types/storybookTypes'
|
|
2
|
+
|
|
3
|
+
import textareaAutosizeEn from './textarea-autosize.en.mdx'
|
|
4
|
+
import textareaAutosizeRu from './textarea-autosize.ru.mdx'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* MDX files for TextareaAutosize component
|
|
8
|
+
*
|
|
9
|
+
* MDX файлы для компонента TextareaAutosize
|
|
10
|
+
*/
|
|
11
|
+
export const wikiMdxTextareaAutosize: StorybookComponentsMdxItem = {
|
|
12
|
+
name: 'TextareaAutosize',
|
|
13
|
+
descriptions: {
|
|
14
|
+
'textarea-autosize': {
|
|
15
|
+
en: textareaAutosizeEn,
|
|
16
|
+
ru: textareaAutosizeRu
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
### `control`
|
|
2
|
+
- `onmouseout: function` — mouseout handler
|
|
3
|
+
- `onmouseover: function` — mouseover handler
|
|
4
|
+
- `onclick: function` — click handler
|
|
5
|
+
- `class: string` — classes for styling
|
|
6
|
+
**Properties of `binds`:**
|
|
7
|
+
|
|
8
|
+
- `open: Ref<boolean>` — open state
|
|
9
|
+
- `binds: object` — properties for the control element
|
|
10
|
+
**Parameters:**
|
|
11
|
+
|
|
12
|
+
Slot for the control element that triggers the tooltip.
|
|
13
|
+
|
|
14
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
### `control`
|
|
2
|
+
|
|
3
|
+
Слот для элемента управления, вызывающего подсказку.
|
|
4
|
+
|
|
5
|
+
**Параметры:**
|
|
6
|
+
- `binds: object` — свойства для элемента управления
|
|
7
|
+
- `open: Ref<boolean>` — состояние открытия
|
|
8
|
+
|
|
9
|
+
**Свойства `binds`:**
|
|
10
|
+
- `class: string` — классы для стилизации
|
|
11
|
+
- `onclick: function` — обработчик клика
|
|
12
|
+
- `onmouseover: function` — обработчик наведения курсора
|
|
13
|
+
- `onmouseout: function` — обработчик ухода курсора
|
|
14
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
Component for displaying pop-up tooltips that provide additional information about an element on hover or focus.
|
|
2
|
+
|
|
3
|
+
Tooltip is automatically positioned relative to the target element and can contain a text description or custom content. The component supports configuring show and hide delays, and can be equipped with an indicator (arrow) for visual connection.
|
|
4
|
+
|
|
5
|
+
**Key Features:**
|
|
6
|
+
|
|
7
|
+
- Automatic positioning
|
|
8
|
+
- Support for an indicator (arrow)
|
|
9
|
+
- Configuration of delays (delay, delayHide)
|
|
10
|
+
- Visibility control via properties or events
|
|
11
|
+
- Slot support for content customization
|
|
12
|
+
- Adaptability and accessibility
|
|
13
|
+
|
|
14
|
+
**Typical Use Cases:**
|
|
15
|
+
|
|
16
|
+
- Explanations for icons and buttons
|
|
17
|
+
- Displaying full text for truncated elements
|
|
18
|
+
- Contextual hints for input fields
|
|
19
|
+
- Additional information in the interface
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<script setup>
|
|
23
|
+
import { Tooltip } from 'dxt-ui'
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<template>
|
|
27
|
+
<div class="p-4">
|
|
28
|
+
<Tooltip label="Tooltip text">
|
|
29
|
+
<button>Hover me</button>
|
|
30
|
+
</Tooltip>
|
|
31
|
+
</div>
|
|
32
|
+
</template>
|
|
33
|
+
```
|
|
34
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
Компонент для отображения всплывающих подсказок, предоставляющих дополнительную информацию об элементе при наведении или фокусировке.
|
|
2
|
+
|
|
3
|
+
Tooltip автоматически позиционируется относительно целевого элемента и может содержать текстовое описание или произвольный контент. Компонент поддерживает настройку задержек появления и скрытия, а также может быть оснащен указателем (стрелкой) для визуальной связи.
|
|
4
|
+
|
|
5
|
+
**Основные возможности:**
|
|
6
|
+
|
|
7
|
+
- Автоматическое позиционирование
|
|
8
|
+
- Поддержка указателя (стрелки)
|
|
9
|
+
- Настройка задержек (delay, delayHide)
|
|
10
|
+
- Управление видимостью через свойства или события
|
|
11
|
+
- Поддержка слотов для кастомизации контента
|
|
12
|
+
- Адаптивность и доступность
|
|
13
|
+
|
|
14
|
+
**Типичные сценарии использования:**
|
|
15
|
+
|
|
16
|
+
- Пояснения к иконкам и кнопкам
|
|
17
|
+
- Отображение полного текста для сокращенных элементов
|
|
18
|
+
- Контекстные подсказки для полей ввода
|
|
19
|
+
- Дополнительная информация в интерфейсе
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<script setup>
|
|
23
|
+
import { Tooltip } from 'dxt-ui'
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<template>
|
|
27
|
+
<div class="p-4">
|
|
28
|
+
<Tooltip label="Подсказка">
|
|
29
|
+
<button>Наведи на меня</button>
|
|
30
|
+
</Tooltip>
|
|
31
|
+
</div>
|
|
32
|
+
</template>
|
|
33
|
+
```
|
|
34
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { StorybookComponentsMdxItem } from '../../../types/storybookTypes'
|
|
2
|
+
|
|
3
|
+
import tooltipEn from './tooltip.en.mdx'
|
|
4
|
+
import tooltipRu from './tooltip.ru.mdx'
|
|
5
|
+
import eventTooltipEn from './event.tooltip.en.mdx'
|
|
6
|
+
import eventTooltipRu from './event.tooltip.ru.mdx'
|
|
7
|
+
import slotControlEn from './slot.control.en.mdx'
|
|
8
|
+
import slotControlRu from './slot.control.ru.mdx'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* MDX files for Tooltip component
|
|
12
|
+
*
|
|
13
|
+
* MDX файлы для компонента Tooltip
|
|
14
|
+
*/
|
|
15
|
+
export const wikiMdxTooltip: StorybookComponentsMdxItem = {
|
|
16
|
+
name: 'Tooltip',
|
|
17
|
+
descriptions: {
|
|
18
|
+
'tooltip': {
|
|
19
|
+
en: tooltipEn,
|
|
20
|
+
ru: tooltipRu
|
|
21
|
+
},
|
|
22
|
+
'event.tooltip': {
|
|
23
|
+
en: eventTooltipEn,
|
|
24
|
+
ru: eventTooltipRu
|
|
25
|
+
},
|
|
26
|
+
'slot.control': {
|
|
27
|
+
en: slotControlEn,
|
|
28
|
+
ru: slotControlRu
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
- `*--blockOther` — предотвращает закрытие других окон до закрытия текущего
|
|
6
6
|
- `*--close` — применяется к элементам для закрытия окна
|
|
7
7
|
- `*--controlOpenOnly` — применяется к элементам управления, которые только открывают окно
|
|
8
|
-
- `*--controlStatic` — применяется к элементам управления в статическом
|
|
8
|
+
- `*--controlStatic` — применяется к элементам управления в статическом режиме
|
|
9
9
|
- `*--static` — применяется к элементам внутри окна, отменяя все действия
|
|
10
10
|
|
|
11
11
|
Где `*` — название класса компонента (например, `d1-window`, `m3-window`).
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
### `actions`
|
|
2
|
+
|
|
3
|
+
Event fires when clicking on an action button in the Actions component, passing the original DOM event and click data.
|
|
4
|
+
|
|
5
|
+
**Parameters:**
|
|
6
|
+
- `event: MouseEvent` — original DOM mouse event
|
|
7
|
+
- `value: EventClickValue` — object with click data
|
|
8
|
+
|
|
9
|
+
**EventClickValue structure:**
|
|
10
|
+
- `type: string` — action/button type (e.g., `'confirm'`, `'cancel'`)
|
|
11
|
+
- `value: any` — arbitrary button value
|
|
12
|
+
- `detail: Record<string, any> | undefined` — additional event data
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<script setup>
|
|
16
|
+
const handleActions = (event, value) => {
|
|
17
|
+
console.log('DOM event:', event)
|
|
18
|
+
console.log('Action type:', value.type)
|
|
19
|
+
console.log('Value:', value.value)
|
|
20
|
+
console.log('Details:', value.detail)
|
|
21
|
+
|
|
22
|
+
if (value.type === 'confirm') {
|
|
23
|
+
console.log('Confirm button pressed')
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<template>
|
|
29
|
+
<Actions @actions="handleActions" :list="[
|
|
30
|
+
{ text: 'Cancel', type: 'cancel' },
|
|
31
|
+
{ text: 'Confirm', type: 'confirm' }
|
|
32
|
+
]" />
|
|
33
|
+
</template>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### `actionsLite`
|
|
37
|
+
|
|
38
|
+
Event fires when clicking on an action button in the Actions component, passing only data without the original DOM event (lightweight version).
|
|
39
|
+
|
|
40
|
+
**Parameters:**
|
|
41
|
+
- `value: EventClickValue` — object with click data
|
|
42
|
+
|
|
43
|
+
> Actions component can be hidden with `actionsHide` property.
|
|
44
|
+
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
### `actions`
|
|
2
|
+
|
|
3
|
+
Событие срабатывает при клике на кнопку действия в компоненте Actions, передавая оригинальное DOM событие и данные о клике.
|
|
4
|
+
|
|
5
|
+
**Параметры:**
|
|
6
|
+
- `event: MouseEvent` — оригинальное DOM событие мыши
|
|
7
|
+
- `value: EventClickValue` — объект с данными о клике
|
|
8
|
+
|
|
9
|
+
**Структура EventClickValue:**
|
|
10
|
+
- `type: string` — тип действия/кнопки (например, `'confirm'`, `'cancel'`)
|
|
11
|
+
- `value: any` — произвольное значение кнопки
|
|
12
|
+
- `detail: Record<string, any> | undefined` — дополнительные данные события
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<script setup>
|
|
16
|
+
const handleActions = (event, value) => {
|
|
17
|
+
console.log('DOM событие:', event)
|
|
18
|
+
console.log('Тип действия:', value.type)
|
|
19
|
+
console.log('Значение:', value.value)
|
|
20
|
+
console.log('Детали:', value.detail)
|
|
21
|
+
|
|
22
|
+
if (value.type === 'confirm') {
|
|
23
|
+
console.log('Нажата кнопка "Подтвердить"')
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<template>
|
|
29
|
+
<Actions @actions="handleActions" :list="[
|
|
30
|
+
{ text: 'Отмена', type: 'cancel' },
|
|
31
|
+
{ text: 'Подтвердить', type: 'confirm' }
|
|
32
|
+
]" />
|
|
33
|
+
</template>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### `actionsLite`
|
|
37
|
+
|
|
38
|
+
Событие срабатывает при клике на кнопку действия в компоненте Actions, передавая только данные без оригинального DOM события (облегченная версия).
|
|
39
|
+
|
|
40
|
+
**Параметры:**
|
|
41
|
+
- `value: EventClickValue` — объект с данными о клике
|
|
42
|
+
|
|
43
|
+
> Компонент Actions можно скрыть свойством `actionsHide`.
|
|
44
|
+
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { StorybookComponentsMdxItem } from '../../../types/storybookTypes'
|
|
2
2
|
|
|
3
|
+
import eventsActionsEn from './events.actions.en.mdx'
|
|
4
|
+
import eventsActionsRu from './events.actions.ru.mdx'
|
|
3
5
|
import eventsBarsEn from './events.bars.en.mdx'
|
|
4
6
|
import eventsBarsRu from './events.bars.ru.mdx'
|
|
5
7
|
import eventsBeforeinputEn from './events.beforeinput.en.mdx'
|
|
@@ -10,6 +12,8 @@ import eventsFocusEn from './events.focus.en.mdx'
|
|
|
10
12
|
import eventsFocusRu from './events.focus.ru.mdx'
|
|
11
13
|
import eventsInputEn from './events.input.en.mdx'
|
|
12
14
|
import eventsInputRu from './events.input.ru.mdx'
|
|
15
|
+
import eventsInputStandardEn from './events.inputStandard.en.mdx'
|
|
16
|
+
import eventsInputStandardRu from './events.inputStandard.ru.mdx'
|
|
13
17
|
import eventsKeyboardEn from './events.keyboard.en.mdx'
|
|
14
18
|
import eventsKeyboardRu from './events.keyboard.ru.mdx'
|
|
15
19
|
import eventsPasteEn from './events.paste.en.mdx'
|
|
@@ -20,35 +24,43 @@ import eventsResetRu from './events.reset.ru.mdx'
|
|
|
20
24
|
export const wikiMdxEvent: StorybookComponentsMdxItem = {
|
|
21
25
|
name: 'Event',
|
|
22
26
|
descriptions: {
|
|
23
|
-
|
|
27
|
+
'actions': {
|
|
28
|
+
en: eventsActionsEn,
|
|
29
|
+
ru: eventsActionsRu
|
|
30
|
+
},
|
|
31
|
+
'bars': {
|
|
24
32
|
en: eventsBarsEn,
|
|
25
33
|
ru: eventsBarsRu
|
|
26
34
|
},
|
|
27
|
-
beforeinput: {
|
|
35
|
+
'beforeinput': {
|
|
28
36
|
en: eventsBeforeinputEn,
|
|
29
37
|
ru: eventsBeforeinputRu
|
|
30
38
|
},
|
|
31
|
-
click: {
|
|
39
|
+
'click': {
|
|
32
40
|
en: eventsClickEn,
|
|
33
41
|
ru: eventsClickRu
|
|
34
42
|
},
|
|
35
|
-
focus: {
|
|
43
|
+
'focus': {
|
|
36
44
|
en: eventsFocusEn,
|
|
37
45
|
ru: eventsFocusRu
|
|
38
46
|
},
|
|
39
|
-
input: {
|
|
47
|
+
'input': {
|
|
40
48
|
en: eventsInputEn,
|
|
41
49
|
ru: eventsInputRu
|
|
42
50
|
},
|
|
43
|
-
|
|
51
|
+
'input-standard': {
|
|
52
|
+
en: eventsInputStandardEn,
|
|
53
|
+
ru: eventsInputStandardRu
|
|
54
|
+
},
|
|
55
|
+
'keyboard': {
|
|
44
56
|
en: eventsKeyboardEn,
|
|
45
57
|
ru: eventsKeyboardRu
|
|
46
58
|
},
|
|
47
|
-
paste: {
|
|
59
|
+
'paste': {
|
|
48
60
|
en: eventsPasteEn,
|
|
49
61
|
ru: eventsPasteRu
|
|
50
62
|
},
|
|
51
|
-
reset: {
|
|
63
|
+
'reset': {
|
|
52
64
|
en: eventsResetEn,
|
|
53
65
|
ru: eventsResetRu
|
|
54
66
|
}
|