@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.
Files changed (230) hide show
  1. package/package.json +7 -7
  2. package/src/classes/WikiStorybookItem.ts +24 -0
  3. package/src/media/descriptions/wikiDescriptions.ts +28 -0
  4. package/src/media/descriptions/wikiDescriptionsAccordion.ts +158 -0
  5. package/src/media/descriptions/wikiDescriptionsActionSheet.ts +211 -0
  6. package/src/media/descriptions/wikiDescriptionsActions.ts +161 -0
  7. package/src/media/descriptions/wikiDescriptionsAnchor.ts +42 -0
  8. package/src/media/descriptions/wikiDescriptionsArrow.ts +181 -0
  9. package/src/media/descriptions/wikiDescriptionsBlock.ts +97 -0
  10. package/src/media/descriptions/wikiDescriptionsButton.ts +0 -1
  11. package/src/media/descriptions/wikiDescriptionsCell.ts +2 -1
  12. package/src/media/descriptions/wikiDescriptionsChipGroup.ts +168 -0
  13. package/src/media/descriptions/wikiDescriptionsDialog.ts +182 -0
  14. package/src/media/descriptions/wikiDescriptionsField.ts +2 -0
  15. package/src/media/descriptions/wikiDescriptionsImage.ts +41 -6
  16. package/src/media/descriptions/wikiDescriptionsInput.ts +257 -0
  17. package/src/media/descriptions/wikiDescriptionsMenu.ts +123 -0
  18. package/src/media/descriptions/wikiDescriptionsModal.ts +145 -0
  19. package/src/media/descriptions/wikiDescriptionsMotionTransform.ts +2 -6
  20. package/src/media/descriptions/wikiDescriptionsSelect.ts +209 -0
  21. package/src/media/descriptions/wikiDescriptionsSelectValue.ts +78 -0
  22. package/src/media/descriptions/wikiDescriptionsTextareaAutosize.ts +50 -0
  23. package/src/media/descriptions/wikiDescriptionsTooltip.ts +89 -0
  24. package/src/media/functional/en/conversions.mdx +67 -0
  25. package/src/media/functional/en/dataUtils.mdx +25 -0
  26. package/src/media/functional/en/datetimeRef.mdx +1 -1
  27. package/src/media/functional/en/eventRef.mdx +1 -1
  28. package/src/media/functional/en/executionUtils.mdx +58 -0
  29. package/src/media/functional/en/geoFlagRef.mdx +1 -1
  30. package/src/media/functional/en/geoIntlRef.mdx +1 -1
  31. package/src/media/functional/en/geoRef.mdx +2 -2
  32. package/src/media/functional/en/meta.mdx +1206 -0
  33. package/src/media/functional/en/metaManager.mdx +376 -0
  34. package/src/media/functional/en/metaOg.mdx +694 -0
  35. package/src/media/functional/en/metaTwitter.mdx +853 -0
  36. package/src/media/functional/en/reactive.mdx +40 -0
  37. package/src/media/functional/en/refTypes.mdx +1 -1
  38. package/src/media/functional/en/useApiRef.mdx +5 -5
  39. package/src/media/functional/en/useMeta.mdx +431 -0
  40. package/src/media/functional/en/validationUtils.mdx +11 -0
  41. package/src/media/functional/ru/conversions.mdx +67 -0
  42. package/src/media/functional/ru/dataUtils.mdx +25 -0
  43. package/src/media/functional/ru/datetimeRef.mdx +2 -2
  44. package/src/media/functional/ru/eventRef.mdx +1 -1
  45. package/src/media/functional/ru/executionUtils.mdx +58 -0
  46. package/src/media/functional/ru/geoFlagRef.mdx +1 -1
  47. package/src/media/functional/ru/geoIntl.mdx +2 -2
  48. package/src/media/functional/ru/geoIntlRef.mdx +1 -1
  49. package/src/media/functional/ru/geoRef.mdx +2 -2
  50. package/src/media/functional/ru/listTypes.mdx +1 -1
  51. package/src/media/functional/ru/meta.mdx +1330 -0
  52. package/src/media/functional/ru/metaManager.mdx +376 -0
  53. package/src/media/functional/ru/metaOg.mdx +694 -0
  54. package/src/media/functional/ru/metaTwitter.mdx +853 -0
  55. package/src/media/functional/ru/reactive.mdx +40 -0
  56. package/src/media/functional/ru/refTypes.mdx +2 -2
  57. package/src/media/functional/ru/useApiRef.mdx +5 -5
  58. package/src/media/functional/ru/useMeta.mdx +431 -0
  59. package/src/media/functional/ru/validationUtils.mdx +11 -0
  60. package/src/media/mdx/Accordion/accordion.en.mdx +59 -0
  61. package/src/media/mdx/Accordion/accordion.ru.mdx +59 -0
  62. package/src/media/mdx/Accordion/slots.en.mdx +6 -0
  63. package/src/media/mdx/Accordion/slots.ru.mdx +6 -0
  64. package/src/media/mdx/Accordion/wikiMdxAccordion.ts +25 -0
  65. package/src/media/mdx/ActionSheet/actionSheet.en.mdx +61 -0
  66. package/src/media/mdx/ActionSheet/actionSheet.ru.mdx +61 -0
  67. package/src/media/mdx/ActionSheet/touchClose.en.mdx +21 -0
  68. package/src/media/mdx/ActionSheet/touchClose.ru.mdx +21 -0
  69. package/src/media/mdx/ActionSheet/wikiMdxActionSheet.ts +25 -0
  70. package/src/media/mdx/Actions/actions.en.mdx +48 -0
  71. package/src/media/mdx/Actions/actions.ru.mdx +48 -0
  72. package/src/media/mdx/Actions/flexible.en.mdx +19 -0
  73. package/src/media/mdx/Actions/flexible.ru.mdx +19 -0
  74. package/src/media/mdx/Actions/list.en.mdx +50 -0
  75. package/src/media/mdx/Actions/list.ru.mdx +50 -0
  76. package/src/media/mdx/Actions/wikiMdxActions.ts +31 -0
  77. package/src/media/mdx/Anchor/anchor.en.mdx +34 -0
  78. package/src/media/mdx/Anchor/anchor.ru.mdx +34 -0
  79. package/src/media/mdx/Anchor/expose.go.en.mdx +6 -0
  80. package/src/media/mdx/Anchor/expose.go.ru.mdx +6 -0
  81. package/src/media/mdx/Anchor/hide.en.mdx +28 -0
  82. package/src/media/mdx/Anchor/hide.ru.mdx +28 -0
  83. package/src/media/mdx/Anchor/isCopy.en.mdx +23 -0
  84. package/src/media/mdx/Anchor/isCopy.ru.mdx +23 -0
  85. package/src/media/mdx/Anchor/scroll.en.mdx +34 -0
  86. package/src/media/mdx/Anchor/scroll.ru.mdx +35 -0
  87. package/src/media/mdx/Anchor/wikiMdxAnchor.ts +43 -0
  88. package/src/media/mdx/Arrow/arrow.en.mdx +33 -0
  89. package/src/media/mdx/Arrow/arrow.ru.mdx +33 -0
  90. package/src/media/mdx/Arrow/wikiMdxArrow.ts +19 -0
  91. package/src/media/mdx/Block/block.en.mdx +42 -0
  92. package/src/media/mdx/Block/block.ru.mdx +42 -0
  93. package/src/media/mdx/Block/wikiMdxBlock.ts +19 -0
  94. package/src/media/mdx/ChipGroup/chipGroup.en.mdx +51 -0
  95. package/src/media/mdx/ChipGroup/chipGroup.ru.mdx +51 -0
  96. package/src/media/mdx/ChipGroup/selected.en.mdx +50 -0
  97. package/src/media/mdx/ChipGroup/selected.ru.mdx +50 -0
  98. package/src/media/mdx/ChipGroup/wikiMdxChipGroup.ts +25 -0
  99. package/src/media/mdx/Dialog/buttons.en.mdx +45 -0
  100. package/src/media/mdx/Dialog/buttons.ru.mdx +45 -0
  101. package/src/media/mdx/Dialog/dialog.en.mdx +66 -0
  102. package/src/media/mdx/Dialog/dialog.ru.mdx +65 -0
  103. package/src/media/mdx/Dialog/events.en.mdx +63 -0
  104. package/src/media/mdx/Dialog/events.ru.mdx +63 -0
  105. package/src/media/mdx/Dialog/states.en.mdx +58 -0
  106. package/src/media/mdx/Dialog/states.ru.mdx +57 -0
  107. package/src/media/mdx/Dialog/wikiMdxDialog.ts +37 -0
  108. package/src/media/mdx/Field/arrows.en.mdx +22 -6
  109. package/src/media/mdx/Field/arrows.ru.mdx +22 -6
  110. package/src/media/mdx/Field/slots.en.mdx +0 -13
  111. package/src/media/mdx/Field/slots.ru.mdx +0 -13
  112. package/src/media/mdx/Image/img-tag.en.mdx +105 -0
  113. package/src/media/mdx/Image/img-tag.ru.mdx +105 -0
  114. package/src/media/mdx/Image/wikiMdxImage.ts +6 -0
  115. package/src/media/mdx/Input/currency.en.mdx +38 -0
  116. package/src/media/mdx/Input/currency.ru.mdx +38 -0
  117. package/src/media/mdx/Input/date.en.mdx +53 -0
  118. package/src/media/mdx/Input/date.ru.mdx +53 -0
  119. package/src/media/mdx/Input/input.en.mdx +143 -0
  120. package/src/media/mdx/Input/input.ru.mdx +71 -0
  121. package/src/media/mdx/Input/mask.en.mdx +30 -0
  122. package/src/media/mdx/Input/mask.ru.mdx +30 -0
  123. package/src/media/mdx/Input/number.en.mdx +41 -0
  124. package/src/media/mdx/Input/number.ru.mdx +41 -0
  125. package/src/media/mdx/Input/type.en.mdx +26 -0
  126. package/src/media/mdx/Input/type.ru.mdx +26 -0
  127. package/src/media/mdx/Input/wikiMdxInput.ts +49 -0
  128. package/src/media/mdx/Menu/event.updateValue.en.mdx +29 -0
  129. package/src/media/mdx/Menu/event.updateValue.ru.mdx +30 -0
  130. package/src/media/mdx/Menu/expose.navigation.en.mdx +12 -0
  131. package/src/media/mdx/Menu/expose.navigation.ru.mdx +12 -0
  132. package/src/media/mdx/Menu/navigation.en.mdx +56 -0
  133. package/src/media/mdx/Menu/navigation.ru.mdx +56 -0
  134. package/src/media/mdx/Menu/slots.control.en.mdx +65 -0
  135. package/src/media/mdx/Menu/slots.control.ru.mdx +65 -0
  136. package/src/media/mdx/Menu/slots.en.mdx +2 -24
  137. package/src/media/mdx/Menu/slots.ru.mdx +2 -24
  138. package/src/media/mdx/Menu/wikiMdxMenu.ts +27 -3
  139. package/src/media/mdx/Modal/differences.en.mdx +130 -0
  140. package/src/media/mdx/Modal/differences.ru.mdx +65 -0
  141. package/src/media/mdx/Modal/modal.en.mdx +63 -0
  142. package/src/media/mdx/Modal/modal.ru.mdx +63 -0
  143. package/src/media/mdx/Modal/wikiMdxModal.ts +25 -0
  144. package/src/media/mdx/MotionTransform/expose.motionTransformElement.en.mdx +13 -0
  145. package/src/media/mdx/MotionTransform/expose.motionTransformElement.ru.mdx +14 -0
  146. package/src/media/mdx/MotionTransform/wikiMdxMotionTransform.ts +6 -0
  147. package/src/media/mdx/Select/select.en.mdx +69 -0
  148. package/src/media/mdx/Select/select.ru.mdx +69 -0
  149. package/src/media/mdx/Select/wikiMdxSelect.ts +19 -0
  150. package/src/media/mdx/SelectValue/selectValue.en.mdx +64 -0
  151. package/src/media/mdx/SelectValue/selectValue.ru.mdx +64 -0
  152. package/src/media/mdx/SelectValue/wikiMdxSelectValue.ts +19 -0
  153. package/src/media/mdx/TextareaAutosize/textarea-autosize.en.mdx +65 -0
  154. package/src/media/mdx/TextareaAutosize/textarea-autosize.ru.mdx +65 -0
  155. package/src/media/mdx/TextareaAutosize/wikiMdxTextareaAutosize.ts +19 -0
  156. package/src/media/mdx/Tooltip/event.tooltip.en.mdx +7 -0
  157. package/src/media/mdx/Tooltip/event.tooltip.ru.mdx +8 -0
  158. package/src/media/mdx/Tooltip/slot.control.en.mdx +14 -0
  159. package/src/media/mdx/Tooltip/slot.control.ru.mdx +14 -0
  160. package/src/media/mdx/Tooltip/tooltip.en.mdx +34 -0
  161. package/src/media/mdx/Tooltip/tooltip.ru.mdx +34 -0
  162. package/src/media/mdx/Tooltip/wikiMdxTooltip.ts +31 -0
  163. package/src/media/mdx/Window/classes.ru.mdx +1 -1
  164. package/src/media/mdx/event/events.actions.en.mdx +44 -0
  165. package/src/media/mdx/event/events.actions.ru.mdx +44 -0
  166. package/src/media/mdx/event/events.inputStandard.en.mdx +6 -0
  167. package/src/media/mdx/event/events.inputStandard.ru.mdx +6 -0
  168. package/src/media/mdx/event/wikiMdxEvent.ts +20 -8
  169. package/src/media/mdx/expose/expose.descriptionId.en.mdx +6 -0
  170. package/src/media/mdx/expose/expose.descriptionId.ru.mdx +6 -0
  171. package/src/media/mdx/expose/expose.id.en.mdx +6 -0
  172. package/src/media/mdx/expose/expose.id.ru.mdx +6 -0
  173. package/src/media/mdx/expose/expose.labelId.en.mdx +6 -0
  174. package/src/media/mdx/expose/expose.labelId.ru.mdx +6 -0
  175. package/src/media/mdx/expose/wikiMdxExpose.ts +18 -0
  176. package/src/media/mdx/slot/body.en.mdx +6 -0
  177. package/src/media/mdx/slot/body.ru.mdx +6 -0
  178. package/src/media/mdx/slot/headline.en.mdx +7 -0
  179. package/src/media/mdx/slot/headline.ru.mdx +6 -0
  180. package/src/media/mdx/slot/leading.en.mdx +7 -0
  181. package/src/media/mdx/slot/leading.ru.mdx +7 -0
  182. package/src/media/mdx/slot/secondary.en.mdx +5 -0
  183. package/src/media/mdx/slot/secondary.ru.mdx +5 -0
  184. package/src/media/mdx/slot/trailing.en.mdx +7 -0
  185. package/src/media/mdx/slot/trailing.ru.mdx +7 -0
  186. package/src/media/mdx/slot/wikiMdxSlot.ts +30 -0
  187. package/src/media/mdx/style/isSkeleton.en.mdx +2 -2
  188. package/src/media/mdx/style/isSkeleton.ru.mdx +2 -2
  189. package/src/media/mdx/value/v-model-selected.en.mdx +28 -0
  190. package/src/media/mdx/value/v-model-selected.ru.mdx +28 -0
  191. package/src/media/mdx/value/v-model.en.mdx +26 -0
  192. package/src/media/mdx/value/v-model.ru.mdx +26 -0
  193. package/src/media/mdx/value/wikiMdxValue.ts +24 -3
  194. package/src/media/mdx/wikiMdx.ts +29 -1
  195. package/src/media/props/wiki.ts +42 -0
  196. package/src/media/props/wikiActions.ts +43 -0
  197. package/src/media/props/wikiActionsInclude.ts +62 -0
  198. package/src/media/props/wikiAnchor.ts +84 -0
  199. package/src/media/props/wikiAria.ts +102 -0
  200. package/src/media/props/wikiArrow.ts +24 -0
  201. package/src/media/props/wikiArrowInclude.ts +45 -0
  202. package/src/media/props/wikiBarsInclude.ts +80 -0
  203. package/src/media/props/wikiChipGroup.ts +39 -0
  204. package/src/media/props/wikiDialog.ts +34 -0
  205. package/src/media/props/wikiField.ts +0 -21
  206. package/src/media/props/wikiFieldCounterInclude.ts +78 -0
  207. package/src/media/props/wikiForm.ts +248 -0
  208. package/src/media/props/wikiHook.ts +20 -0
  209. package/src/media/props/wikiIcon.ts +3 -3
  210. package/src/media/props/wikiIconInclude.ts +319 -0
  211. package/src/media/props/wikiImage.ts +71 -19
  212. package/src/media/props/wikiInformation.ts +160 -0
  213. package/src/media/props/wikiInput.ts +34 -0
  214. package/src/media/props/wikiListItem.ts +20 -0
  215. package/src/media/props/wikiMask.ts +0 -10
  216. package/src/media/props/wikiMaskInclude.ts +54 -0
  217. package/src/media/props/wikiMenu.ts +0 -10
  218. package/src/media/props/wikiMotionTransform.ts +0 -10
  219. package/src/media/props/wikiOption.ts +113 -0
  220. package/src/media/props/wikiSelect.ts +68 -0
  221. package/src/media/props/wikiSelectValue.ts +30 -0
  222. package/src/media/props/wikiStatus.ts +29 -41
  223. package/src/media/props/wikiStyle.ts +154 -243
  224. package/src/media/props/wikiTechnical.ts +65 -0
  225. package/src/media/props/wikiText.ts +57 -0
  226. package/src/media/props/wikiTooltip.ts +53 -0
  227. package/src/media/props/wikiValue.ts +14 -203
  228. package/src/media/props/wikiWindow.ts +0 -31
  229. package/src/styles/storybookStyle.scss +3 -1
  230. package/src/types/storybookTypes.ts +26 -4
@@ -1,10 +1,3 @@
1
- ### `control`
2
-
3
- Слот для размещения элемента управления (триггера) меню.
4
-
5
- **Параметры:**
6
- - `props: MenuControlItem` — объект с данными управления меню
7
-
8
1
  ### `title`
9
2
 
10
3
  Слот для размещения заголовка окна меню.
@@ -35,28 +28,13 @@
35
28
 
36
29
  ```html
37
30
  <script setup>
38
- import { ref } from 'vue'
39
-
40
- const isOpen = ref(false)
41
- const menuItems = ref([
42
- { label: 'Элемент 1', value: '1' },
43
- { label: 'Элемент 2', value: '2' },
44
- { label: 'Элемент 3', value: '3' }
45
- ])
46
-
47
31
  const handleSubmit = (values) => {
48
32
  console.log('Выбранные значения:', values)
49
33
  }
50
34
  </script>
51
35
 
52
36
  <template>
53
- <Menu v-model:open="isOpen" :list="menuItems">
54
- <template #control="{ onclick, isSelected, selectedNames }">
55
- <button @click="onclick">
56
- {{ isSelected ? selectedNames.join(', ') : 'Выбрать элементы' }}
57
- </button>
58
- </template>
59
-
37
+ <Component>
60
38
  <template #title="{ selectedList }">
61
39
  <h3>Выбор элементов</h3>
62
40
  <span v-if="selectedList.length">
@@ -77,7 +55,7 @@ const handleSubmit = (values) => {
77
55
  Применить
78
56
  </button>
79
57
  </template>
80
- </Menu>
58
+ </Component>
81
59
  </template>
82
60
  ```
83
61
 
@@ -2,26 +2,50 @@ import type { StorybookComponentsMdxItem } from '../../../types/storybookTypes'
2
2
 
3
3
  import ajaxEn from './ajax.en.mdx'
4
4
  import ajaxRu from './ajax.ru.mdx'
5
+ import eventUpdateValueEn from './event.updateValue.en.mdx'
6
+ import eventUpdateValueRu from './event.updateValue.ru.mdx'
7
+ import exposeNavigationEn from './expose.navigation.en.mdx'
8
+ import exposeNavigationRu from './expose.navigation.ru.mdx'
5
9
  import menuEn from './menu.en.mdx'
6
10
  import menuRu from './menu.ru.mdx'
11
+ import navigationEn from './navigation.en.mdx'
12
+ import navigationRu from './navigation.ru.mdx'
7
13
  import slotsEn from './slots.en.mdx'
8
14
  import slotsRu from './slots.ru.mdx'
15
+ import slotsControlEn from './slots.control.en.mdx'
16
+ import slotsControlRu from './slots.control.ru.mdx'
9
17
 
10
18
  /** MDX документация для компонента Menu */
11
19
  export const wikiMdxMenu: StorybookComponentsMdxItem = {
12
20
  name: 'Menu',
13
21
  descriptions: {
14
- ajax: {
22
+ 'ajax': {
15
23
  en: ajaxEn,
16
24
  ru: ajaxRu
17
25
  },
18
- menu: {
26
+ 'event.updateValue': {
27
+ en: eventUpdateValueEn,
28
+ ru: eventUpdateValueRu
29
+ },
30
+ 'expose.navigation': {
31
+ en: exposeNavigationEn,
32
+ ru: exposeNavigationRu
33
+ },
34
+ 'menu': {
19
35
  en: menuEn,
20
36
  ru: menuRu
21
37
  },
22
- slots: {
38
+ 'navigation': {
39
+ en: navigationEn,
40
+ ru: navigationRu
41
+ },
42
+ 'slots': {
23
43
  en: slotsEn,
24
44
  ru: slotsRu
45
+ },
46
+ 'slotsControl': {
47
+ en: slotsControlEn,
48
+ ru: slotsControlRu
25
49
  }
26
50
  }
27
51
  }
@@ -0,0 +1,130 @@
1
+ ## Differences between Modal, ActionSheet and Dialog
2
+
3
+ All three components are built on top of **Window**, but have different purposes and behaviors:
4
+
5
+ ### Modal
6
+
7
+ **Modal** — a modal window with centered positioning for content requiring immediate user attention.
8
+
9
+ **Features:**
10
+ - Uses `adaptive: 'modal'` Window mode
11
+ - **Centered positioning** by default
12
+ - Semi-transparent overlay blocks interaction with the main interface
13
+ - Closes on ESC key and click outside (unless `persistent` is set)
14
+ - Supports slots for title, content, and footer
15
+ - Integrated with Bars and Actions components
16
+
17
+ **Common use cases:**
18
+ - Action confirmation dialogs
19
+ - Create/edit record forms
20
+ - Warnings and informational messages
21
+ - Viewing detailed information
22
+
23
+ ---
24
+
25
+ ### ActionSheet
26
+
27
+ **ActionSheet** — a modal panel with a set of actions appearing from the bottom of the screen (on mobile devices) or as a context menu.
28
+
29
+ **Features:**
30
+ - Uses `adaptive: 'actionSheet'` Window mode
31
+ - **Bottom positioning** on mobile devices
32
+ - **Swipe down gesture** support for closing (`touchClose`)
33
+ - Automatically adds dividers between items (`divider: true`)
34
+ - Adaptive behavior: can transform into modal on larger screens
35
+ - Specialized for action lists
36
+
37
+ **Common use cases:**
38
+ - Action menus for objects (edit, delete, share)
39
+ - Selecting an option from a list
40
+ - Context menus on mobile devices
41
+ - Actions requiring quick access
42
+
43
+ ---
44
+
45
+ ### Dialog
46
+
47
+ **Dialog** — a component for dialog windows with simplified API.
48
+
49
+ **Features:**
50
+ - Usually an even more simplified wrapper over Modal
51
+ - May have preset styles for system dialogs
52
+ - Often used for simple confirmations (yes/no, OK/Cancel)
53
+
54
+ **Common use cases:**
55
+ - Simple confirmations (alert, confirm)
56
+ - System notifications
57
+ - Quick dialogs without complex content
58
+
59
+ ---
60
+
61
+ ### Choosing a component
62
+
63
+ - **Use Modal** when you need to display a form, detailed information, or content requiring user attention
64
+ - **Use ActionSheet** when you need to offer a list of actions, especially on mobile devices
65
+ - **Use Dialog** when you need a simple confirmation or system notification
66
+ ## Разница между Modal, ActionSheet и Dialog
67
+
68
+ Все три компонента построены на базе **Window**, но имеют различное назначение и поведение:
69
+
70
+ ### Modal
71
+
72
+ **Modal** — модальное окно с центрированным позиционированием для контента, требующего немедленного внимания пользователя.
73
+
74
+ **Особенности:**
75
+ - Использует `adaptive: 'modal'` режим Window
76
+ - **Центрированное позиционирование** по умолчанию
77
+ - Полупрозрачный оверлей блокирует взаимодействие с основным интерфейсом
78
+ - Закрывается по ESC и клику вне области (если не установлен `persistent`)
79
+ - Поддерживает слоты для заголовка, контента и футера
80
+ - Интегрирован с компонентами Bars и Actions
81
+
82
+ **Типичные сценарии:**
83
+ - Диалоги подтверждения действий
84
+ - Формы создания/редактирования записей
85
+ - Предупреждения и информационные сообщения
86
+ - Просмотр детальной информации
87
+
88
+ ---
89
+
90
+ ### ActionSheet
91
+
92
+ **ActionSheet** — модальная панель с набором действий, появляющаяся снизу экрана (на мобильных устройствах) или в виде контекстного меню.
93
+
94
+ **Особенности:**
95
+ - Использует `adaptive: 'actionSheet'` режим Window
96
+ - **Позиционирование снизу** экрана на мобильных устройствах
97
+ - Поддержка **жеста свайпа вниз** для закрытия (`touchClose`)
98
+ - Автоматически добавляет разделители между элементами (`divider: true`)
99
+ - Адаптивное поведение: может трансформироваться в modal на больших экранах
100
+ - Специализирован для списков действий
101
+
102
+ **Типичные сценарии:**
103
+ - Меню действий с объектом (редактировать, удалить, поделиться)
104
+ - Выбор опции из списка
105
+ - Контекстные меню на мобильных устройствах
106
+ - Действия, требующие быстрого доступа
107
+
108
+ ---
109
+
110
+ ### Dialog
111
+
112
+ **Dialog** — компонент для диалоговых окон с упрощенным API (если реализован в вашей системе).
113
+
114
+ **Особенности:**
115
+ - Обычно является еще более упрощенной оберткой над Modal
116
+ - Может иметь предустановленные стили для системных диалогов
117
+ - Часто используется для простых подтверждений (да/нет, ОК/Отмена)
118
+
119
+ **Типичные сценарии:**
120
+ - Простые подтверждения (alert, confirm)
121
+ - Системные уведомления
122
+ - Быстрые диалоги без сложного контента
123
+
124
+ ---
125
+
126
+ ### Выбор компонента
127
+
128
+ - **Используйте Modal**, когда нужно показать форму, детальную информацию или контент, требующий внимания пользователя
129
+ - **Используйте ActionSheet**, когда нужно предложить список действий, особенно на мобильных устройствах
130
+ - **Используйте Dialog**, когда нужно простое подтверждение или системное уведомление
@@ -0,0 +1,65 @@
1
+ ## Разница между Modal, ActionSheet и Dialog
2
+
3
+ Все три компонента построены на базе **Window**, но имеют различное назначение и поведение:
4
+
5
+ ### Modal
6
+
7
+ **Modal** — модальное окно с центрированным позиционированием для контента, требующего немедленного внимания пользователя.
8
+
9
+ **Особенности:**
10
+ - Использует `adaptive: 'modal'` режим Window
11
+ - **Центрированное позиционирование** по умолчанию
12
+ - Полупрозрачный оверлей блокирует взаимодействие с основным интерфейсом
13
+ - Закрывается по ESC и клику вне области (если не установлен `persistent`)
14
+ - Поддерживает слоты для заголовка, контента и футера
15
+ - Интегрирован с компонентами Bars и Actions
16
+
17
+ **Типичные сценарии:**
18
+ - Диалоги подтверждения действий
19
+ - Формы создания/редактирования записей
20
+ - Предупреждения и информационные сообщения
21
+ - Просмотр детальной информации
22
+
23
+ ---
24
+
25
+ ### ActionSheet
26
+
27
+ **ActionSheet** — модальная панель с набором действий, появляющаяся снизу экрана (на мобильных устройствах) или в виде контекстного меню.
28
+
29
+ **Особенности:**
30
+ - Использует `adaptive: 'actionSheet'` режим Window
31
+ - **Позиционирование снизу** экрана на мобильных устройствах
32
+ - Поддержка **жеста свайпа вниз** для закрытия (`touchClose`)
33
+ - Автоматически добавляет разделители между элементами (`divider: true`)
34
+ - Адаптивное поведение: может трансформироваться в modal на больших экранах
35
+ - Специализирован для списков действий
36
+
37
+ **Типичные сценарии:**
38
+ - Меню действий с объектом (редактировать, удалить, поделиться)
39
+ - Выбор опции из списка
40
+ - Контекстные меню на мобильных устройствах
41
+ - Действия, требующие быстрого доступа
42
+
43
+ ---
44
+
45
+ ### Dialog
46
+
47
+ **Dialog** — компонент для диалоговых окон с упрощенным API.
48
+
49
+ **Особенности:**
50
+ - Обычно является еще более упрощенной оберткой над Modal
51
+ - Может иметь предустановленные стили для системных диалогов
52
+ - Часто используется для простых подтверждений (да/нет, ОК/Отмена)
53
+
54
+ **Типичные сценарии:**
55
+ - Простые подтверждения (alert, confirm)
56
+ - Системные уведомления
57
+ - Быстрые диалоги без сложного контента
58
+
59
+ ---
60
+
61
+ ### Выбор компонента
62
+
63
+ - **Используйте Modal**, когда нужно показать форму, детальную информацию или контент, требующий внимания пользователя
64
+ - **Используйте ActionSheet**, когда нужно предложить список действий, особенно на мобильных устройствах
65
+ - **Используйте Dialog**, когда нужно простое подтверждение или системное уведомление
@@ -0,0 +1,63 @@
1
+ A simplified wrapper over the Window component for creating modal dialogs with preconfigured centered positioning settings.
2
+
3
+ Modal is a specialized component that uses Window with a fixed `adaptive: 'modal'` mode. It is designed to display content that requires immediate user attention, blocking interaction with the main interface. The component automatically centers content, adds a semi-transparent backdrop (overlay), and manages focus.
4
+
5
+ **Key features:**
6
+
7
+ - Centered positioning by default
8
+ - Semi-transparent overlay with background blocking
9
+ - Control via v-model:open
10
+ - Close on ESC key and click outside
11
+ - Integration with Scrollbar for long content
12
+ - Slots for title, content, and footer
13
+ - Lifecycle events (preparation, opening, closing)
14
+ - Close button with customizable icon
15
+
16
+ **Differences from Window:**
17
+
18
+ Modal is a Window with preset `adaptive: 'modal'`, which simplifies usage for standard dialog windows without explicitly specifying the adaptive mode.
19
+
20
+ **Common use cases:**
21
+
22
+ - Action confirmation dialogs
23
+ - Create/edit forms
24
+ - Warnings and informational messages
25
+ - Viewing detailed information
26
+ - Multi-step wizards
27
+
28
+ ```html
29
+ <script setup>
30
+ import { ref } from 'vue'
31
+
32
+ const isModalOpen = ref(false)
33
+
34
+ const handleBeforeClosing = async () => {
35
+ // Check before closing
36
+ return confirm('Close modal window?')
37
+ }
38
+ </script>
39
+
40
+ <template>
41
+ <button @click="isModalOpen = true">Open Modal</button>
42
+
43
+ <Modal
44
+ v-model:open="isModalOpen"
45
+ :beforeClosing="handleBeforeClosing"
46
+ closeButton
47
+ >
48
+ <template #title>
49
+ <h2>Confirm Action</h2>
50
+ </template>
51
+
52
+ <template #default>
53
+ <p>Are you sure you want to perform this action?</p>
54
+ <p>This action cannot be undone.</p>
55
+ </template>
56
+
57
+ <template #footer="{ classesModal }">
58
+ <button :class="classesModal.close">Cancel</button>
59
+ <button @click="performAction">Confirm</button>
60
+ </template>
61
+ </Modal>
62
+ </template>
63
+ ```
@@ -0,0 +1,63 @@
1
+ Упрощенная обертка над компонентом Window для создания модальных диалогов с предустановленными настройками центрированного позиционирования.
2
+
3
+ Modal является специализированным компонентом, который использует Window с фиксированным режимом `adaptive: 'modal'`. Он предназначен для отображения контента, требующего немедленного внимания пользователя, с блокировкой взаимодействия с основным интерфейсом. Компонент автоматически центрирует содержимое, добавляет полупрозрачный фон (overlay) и управляет фокусом.
4
+
5
+ **Основные возможности:**
6
+
7
+ - Центрированное позиционирование по умолчанию
8
+ - Полупрозрачный оверлей с блокировкой фона
9
+ - Управление через v-model:open
10
+ - Закрытие по ESC и клику вне области
11
+ - Интеграция со Scrollbar для длинного контента
12
+ - Слоты для заголовка, содержимого и футера
13
+ - События жизненного цикла (preparation, opening, closing)
14
+ - Кнопка закрытия с настраиваемой иконкой
15
+
16
+ **Отличия от Window:**
17
+
18
+ Modal - это Window с предустановленным `adaptive: 'modal'`, что упрощает использование для стандартных диалоговых окон без необходимости явно указывать режим адаптивности.
19
+
20
+ **Типичные сценарии использования:**
21
+
22
+ - Диалоги подтверждения действий
23
+ - Формы создания/редактирования
24
+ - Предупреждения и информационные сообщения
25
+ - Просмотр детальной информации
26
+ - Многошаговые мастера (wizards)
27
+
28
+ ```html
29
+ <script setup>
30
+ import { ref } from 'vue'
31
+
32
+ const isModalOpen = ref(false)
33
+
34
+ const handleBeforeClosing = async () => {
35
+ // Проверка перед закрытием
36
+ return confirm('Закрыть модальное окно?')
37
+ }
38
+ </script>
39
+
40
+ <template>
41
+ <button @click="isModalOpen = true">Открыть модальное окно</button>
42
+
43
+ <Modal
44
+ v-model:open="isModalOpen"
45
+ :beforeClosing="handleBeforeClosing"
46
+ closeButton
47
+ >
48
+ <template #title>
49
+ <h2>Подтверждение действия</h2>
50
+ </template>
51
+
52
+ <template #default>
53
+ <p>Вы уверены, что хотите выполнить это действие?</p>
54
+ <p>Это действие нельзя будет отменить.</p>
55
+ </template>
56
+
57
+ <template #footer="{ classesModal }">
58
+ <button :class="classesModal.close">Отмена</button>
59
+ <button @click="performAction">Подтвердить</button>
60
+ </template>
61
+ </Modal>
62
+ </template>
63
+ ```
@@ -0,0 +1,25 @@
1
+ import type { StorybookComponentsMdxItem } from '../../../types/storybookTypes'
2
+
3
+ import differencesEn from './differences.en.mdx'
4
+ import differencesRu from './differences.ru.mdx'
5
+ import modalEn from './modal.en.mdx'
6
+ import modalRu from './modal.ru.mdx'
7
+
8
+ /**
9
+ * MDX files for Modal component
10
+ *
11
+ * MDX файлы для компонента Modal
12
+ */
13
+ export const wikiMdxModal: StorybookComponentsMdxItem = {
14
+ name: 'Modal',
15
+ descriptions: {
16
+ differences: {
17
+ en: differencesEn,
18
+ ru: differencesRu
19
+ },
20
+ modal: {
21
+ en: modalEn,
22
+ ru: modalRu
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,13 @@
1
+ ### `motionTransformElement`
2
+
3
+ Reactive reference to the nested MotionTransform component's expose API, providing programmatic access to control methods.
4
+
5
+ **Type:** `Ref<ConstrBind<MotionTransformExpose> | undefined>`
6
+
7
+ **Methods via motionTransformElement.value:**
8
+ - `open` — reactive open state
9
+ - `isShow` — computed visibility state
10
+ - `setOpen(open: boolean)` — set open state
11
+ - `toOpen()` — open component
12
+ - `toClose()` — close component
13
+ - `toggle()` — toggle state
@@ -0,0 +1,14 @@
1
+ ### `motionTransformElement`
2
+
3
+ Реактивная ссылка на expose API вложенного компонента MotionTransform, предоставляющая программный доступ к методам управления.
4
+
5
+ **Тип:** `Ref<ConstrBind<MotionTransformExpose> | undefined>`
6
+
7
+ **Методы через motionTransformElement.value:**
8
+ - `open` — реактивное состояние открытия
9
+ - `isShow` — вычисляемое состояние видимости
10
+ - `setOpen(open: boolean)` — установить состояние открытия
11
+ - `toOpen()` — открыть компонент
12
+ - `toClose()` — закрыть компонент
13
+ - `toggle()` — переключить состояние
14
+
@@ -8,6 +8,8 @@ import eventsEn from './events.en.mdx'
8
8
  import eventsRu from './events.ru.mdx'
9
9
  import exposeIsShowEn from './expose.isShow.en.mdx'
10
10
  import exposeIsShowRu from './expose.isShow.ru.mdx'
11
+ import exposeMotionTransformElementEn from './expose.motionTransformElement.en.mdx'
12
+ import exposeMotionTransformElementRu from './expose.motionTransformElement.ru.mdx'
11
13
  import ignoreEn from './ignore.en.mdx'
12
14
  import ignoreRu from './ignore.ru.mdx'
13
15
  import motionTransformEn from './motionTransform.en.mdx'
@@ -41,6 +43,10 @@ export const wikiMdxMotionTransform: StorybookComponentsMdxItem = {
41
43
  en: exposeIsShowEn,
42
44
  ru: exposeIsShowRu
43
45
  },
46
+ 'expose.motionTransformElement': {
47
+ en: exposeMotionTransformElementEn,
48
+ ru: exposeMotionTransformElementRu
49
+ },
44
50
  'ignore': {
45
51
  en: ignoreEn,
46
52
  ru: ignoreRu
@@ -0,0 +1,69 @@
1
+ Component for creating dropdown selection lists with search, filtering, multiple selection, and validation support.
2
+
3
+ Select is a complete selection element that combines Field, Menu, SelectValue, and Input components to create an advanced selection interface. The component automatically displays selected values as text or chips (for multiple selection), provides built-in search and option filtering, supports AJAX data loading with caching. It integrates with all Field component features including validation, labels, counters, and messages.
4
+
5
+ **Key features:**
6
+
7
+ - Single or multiple value selection
8
+ - Built-in search and real-time option filtering
9
+ - AJAX data loading with caching support
10
+ - Editable selected value mode (editValue)
11
+ - Validation with standard Field features
12
+ - Keyboard navigation and accessibility support
13
+ - Automatic display of selected values (text or chips)
14
+ - Maximum number of selected items limitation
15
+ - Icon support for dropdown arrow and search
16
+ - Auto-close control for multiple selection
17
+ - Integration with Field, Menu, SelectValue, Input components
18
+ - Customization via slots and attributes
19
+ - Responsive design for mobile devices
20
+
21
+ **Typical use cases:**
22
+
23
+ - Selecting values from a predefined list of options
24
+ - Filtering and searching in large data lists
25
+ - Multiple item selection with quantity limitation
26
+ - Selection with AJAX data loading from server
27
+ - Forms with validation of selected values
28
+ - Combo boxes with editing capability
29
+
30
+ ```html
31
+ <script setup>
32
+ import { ref } from 'vue'
33
+
34
+ const selectedCountry = ref('us')
35
+ const selectedLanguages = ref(['js', 'ts'])
36
+
37
+ const countries = [
38
+ { label: 'Russia', value: 'ru' },
39
+ { label: 'USA', value: 'us' },
40
+ { label: 'Germany', value: 'de' }
41
+ ]
42
+
43
+ const languages = [
44
+ { label: 'JavaScript', value: 'js' },
45
+ { label: 'TypeScript', value: 'ts' },
46
+ { label: 'Python', value: 'py' }
47
+ ]
48
+ </script>
49
+
50
+ <template>
51
+ <!-- Simple selection -->
52
+ <Select
53
+ v-model="selectedCountry"
54
+ label="Country"
55
+ placeholder="Choose a country"
56
+ :option="countries"
57
+ />
58
+
59
+ <!-- Multiple selection -->
60
+ <Select
61
+ v-model="selectedLanguages"
62
+ label="Programming languages"
63
+ :multiple="true"
64
+ :max="3"
65
+ helper-message="Select up to 3 languages"
66
+ :option="languages"
67
+ />
68
+ </template>
69
+ ```
@@ -0,0 +1,69 @@
1
+ Компонент для создания выпадающих списков выбора с поддержкой поиска, фильтрации, множественного выбора и валидации.
2
+
3
+ Select представляет собой полнофункциональный элемент выбора, объединяющий компоненты Field, Menu, SelectValue и Input для создания продвинутого интерфейса выбора. Компонент автоматически отображает выбранные значения в виде текста или чипов (для множественного выбора), предоставляет встроенный поиск и фильтрацию опций, поддерживает AJAX загрузку данных с кешированием. Интегрируется со всеми возможностями компонента Field, включая валидацию, подписи, счётчики и сообщения.
4
+
5
+ **Основные возможности:**
6
+
7
+ - Одиночный или множественный выбор значений
8
+ - Встроенный поиск и фильтрация опций в реальном времени
9
+ - AJAX загрузка данных с поддержкой кеширования
10
+ - Режим редактирования выбранного значения (editValue)
11
+ - Валидация со стандартными функциями Field
12
+ - Клавиатурная навигация и поддержка accessibility
13
+ - Автоматическое отображение выбранных значений (текст или чипы)
14
+ - Ограничение максимального количества выбранных элементов
15
+ - Поддержка иконок для стрелки выпадающего списка и поиска
16
+ - Управление автозакрытием для множественного выбора
17
+ - Интеграция с компонентами Field, Menu, SelectValue, Input
18
+ - Кастомизация через слоты и атрибуты
19
+ - Адаптивный дизайн для мобильных устройств
20
+
21
+ **Типичные сценарии использования:**
22
+
23
+ - Выбор значений из предопределённого списка опций
24
+ - Фильтрация и поиск в больших списках данных
25
+ - Множественный выбор элементов с ограничением количества
26
+ - Выбор с AJAX загрузкой данных с сервера
27
+ - Формы с валидацией выбранных значений
28
+ - Комбо-боксы с возможностью редактирования
29
+
30
+ ```html
31
+ <script setup>
32
+ import { ref } from 'vue'
33
+
34
+ const selectedCountry = ref('ru')
35
+ const selectedLanguages = ref(['js', 'ts'])
36
+
37
+ const countries = [
38
+ { label: 'Россия', value: 'ru' },
39
+ { label: 'США', value: 'us' },
40
+ { label: 'Германия', value: 'de' }
41
+ ]
42
+
43
+ const languages = [
44
+ { label: 'JavaScript', value: 'js' },
45
+ { label: 'TypeScript', value: 'ts' },
46
+ { label: 'Python', value: 'py' }
47
+ ]
48
+ </script>
49
+
50
+ <template>
51
+ <!-- Простой выбор -->
52
+ <Select
53
+ v-model="selectedCountry"
54
+ label="Страна"
55
+ placeholder="Выберите страну"
56
+ :option="countries"
57
+ />
58
+
59
+ <!-- Множественный выбор -->
60
+ <Select
61
+ v-model="selectedLanguages"
62
+ label="Языки программирования"
63
+ :multiple="true"
64
+ :max="3"
65
+ helper-message="Выберите до 3 языков"
66
+ :option="languages"
67
+ />
68
+ </template>
69
+ ```
@@ -0,0 +1,19 @@
1
+ import type { StorybookComponentsMdxItem } from '../../../types/storybookTypes'
2
+
3
+ import selectEn from './select.en.mdx'
4
+ import selectRu from './select.ru.mdx'
5
+
6
+ /**
7
+ * MDX files for Select component
8
+ *
9
+ * MDX файлы для компонента Select
10
+ */
11
+ export const wikiMdxSelect: StorybookComponentsMdxItem = {
12
+ name: 'Select',
13
+ descriptions: {
14
+ select: {
15
+ en: selectEn,
16
+ ru: selectRu
17
+ }
18
+ }
19
+ }