@dxtmisha/wiki 0.39.5 → 0.39.7

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 (819) hide show
  1. package/dist/classes/WikiStorybook.d.ts +161 -0
  2. package/dist/classes/WikiStorybookDescriptions.d.ts +29 -0
  3. package/dist/classes/WikiStorybookItem.d.ts +122 -0
  4. package/dist/classes/WikiStorybookProp.d.ts +76 -0
  5. package/dist/defineProperty-DblGXmzD.js +39 -0
  6. package/{src/documentation/storybook/StorybookDescriptions.tsx → dist/documentation/storybook/StorybookDescriptions.d.ts} +5 -18
  7. package/dist/documentation/storybook/StorybookMain.d.ts +6 -0
  8. package/dist/library.d.ts +5 -0
  9. package/dist/library.js +322 -0
  10. package/dist/media/descriptions/wikiDescriptions.d.ts +2 -0
  11. package/dist/media/descriptions/wikiDescriptionsAccordion.d.ts +7 -0
  12. package/dist/media/descriptions/wikiDescriptionsActionSheet.d.ts +7 -0
  13. package/dist/media/descriptions/wikiDescriptionsActions.d.ts +7 -0
  14. package/dist/media/descriptions/wikiDescriptionsAnchor.d.ts +7 -0
  15. package/dist/media/descriptions/wikiDescriptionsArrow.d.ts +7 -0
  16. package/dist/media/descriptions/wikiDescriptionsBadge.d.ts +7 -0
  17. package/dist/media/descriptions/wikiDescriptionsBars.d.ts +7 -0
  18. package/dist/media/descriptions/wikiDescriptionsBlock.d.ts +7 -0
  19. package/dist/media/descriptions/wikiDescriptionsButton.d.ts +7 -0
  20. package/dist/media/descriptions/wikiDescriptionsCell.d.ts +7 -0
  21. package/dist/media/descriptions/wikiDescriptionsCheckbox.d.ts +7 -0
  22. package/dist/media/descriptions/wikiDescriptionsChip.d.ts +7 -0
  23. package/dist/media/descriptions/wikiDescriptionsChipGroup.d.ts +7 -0
  24. package/dist/media/descriptions/wikiDescriptionsDialog.d.ts +7 -0
  25. package/dist/media/descriptions/wikiDescriptionsDummy.d.ts +7 -0
  26. package/dist/media/descriptions/wikiDescriptionsField.d.ts +7 -0
  27. package/dist/media/descriptions/wikiDescriptionsFieldCounter.d.ts +7 -0
  28. package/dist/media/descriptions/wikiDescriptionsFieldLabel.d.ts +7 -0
  29. package/dist/media/descriptions/wikiDescriptionsFieldMessage.d.ts +7 -0
  30. package/dist/media/descriptions/wikiDescriptionsGrid.d.ts +7 -0
  31. package/dist/media/descriptions/wikiDescriptionsGridItem.d.ts +7 -0
  32. package/dist/media/descriptions/wikiDescriptionsGroup.d.ts +7 -0
  33. package/dist/media/descriptions/wikiDescriptionsHorizontalScroll.d.ts +2 -0
  34. package/dist/media/descriptions/wikiDescriptionsIcon.d.ts +2 -0
  35. package/dist/media/descriptions/wikiDescriptionsImage.d.ts +2 -0
  36. package/dist/media/descriptions/wikiDescriptionsInput.d.ts +7 -0
  37. package/dist/media/descriptions/wikiDescriptionsList.d.ts +7 -0
  38. package/dist/media/descriptions/wikiDescriptionsListGroup.d.ts +7 -0
  39. package/dist/media/descriptions/wikiDescriptionsListItem.d.ts +7 -0
  40. package/dist/media/descriptions/wikiDescriptionsListMenu.d.ts +7 -0
  41. package/dist/media/descriptions/wikiDescriptionsMask.d.ts +7 -0
  42. package/dist/media/descriptions/wikiDescriptionsMenu.d.ts +7 -0
  43. package/dist/media/descriptions/wikiDescriptionsModal.d.ts +7 -0
  44. package/dist/media/descriptions/wikiDescriptionsMotionAxis.d.ts +7 -0
  45. package/dist/media/descriptions/wikiDescriptionsMotionTransform.d.ts +7 -0
  46. package/dist/media/descriptions/wikiDescriptionsPage.d.ts +7 -0
  47. package/dist/media/descriptions/wikiDescriptionsProgress.d.ts +2 -0
  48. package/dist/media/descriptions/wikiDescriptionsRipple.d.ts +2 -0
  49. package/dist/media/descriptions/wikiDescriptionsScrollbar.d.ts +7 -0
  50. package/dist/media/descriptions/wikiDescriptionsSection.d.ts +7 -0
  51. package/dist/media/descriptions/wikiDescriptionsSelect.d.ts +7 -0
  52. package/dist/media/descriptions/wikiDescriptionsSelectValue.d.ts +7 -0
  53. package/dist/media/descriptions/wikiDescriptionsSkeleton.d.ts +2 -0
  54. package/dist/media/descriptions/wikiDescriptionsSnackbar.d.ts +7 -0
  55. package/dist/media/descriptions/wikiDescriptionsSnackbarItem.d.ts +7 -0
  56. package/dist/media/descriptions/wikiDescriptionsTabItem.d.ts +2 -0
  57. package/dist/media/descriptions/wikiDescriptionsTabs.d.ts +7 -0
  58. package/dist/media/descriptions/wikiDescriptionsTabsNavigation.d.ts +2 -0
  59. package/dist/media/descriptions/wikiDescriptionsTextarea.d.ts +2 -0
  60. package/dist/media/descriptions/wikiDescriptionsTextareaAutosize.d.ts +7 -0
  61. package/dist/media/descriptions/wikiDescriptionsTooltip.d.ts +7 -0
  62. package/dist/media/descriptions/wikiDescriptionsWindow.d.ts +7 -0
  63. package/dist/media/mdx/Accordion/wikiMdxAccordion.d.ts +7 -0
  64. package/dist/media/mdx/ActionSheet/wikiMdxActionSheet.d.ts +7 -0
  65. package/dist/media/mdx/Actions/wikiMdxActions.d.ts +7 -0
  66. package/dist/media/mdx/Anchor/wikiMdxAnchor.d.ts +7 -0
  67. package/dist/media/mdx/Arrow/wikiMdxArrow.d.ts +7 -0
  68. package/dist/media/mdx/Badge/wikiMdxBadge.d.ts +7 -0
  69. package/dist/media/mdx/Bars/wikiMdxBars.d.ts +7 -0
  70. package/dist/media/mdx/Block/wikiMdxBlock.d.ts +7 -0
  71. package/dist/media/mdx/Button/wikiMdxButton.d.ts +7 -0
  72. package/dist/media/mdx/Cell/wikiMdxCell.d.ts +7 -0
  73. package/dist/media/mdx/Checkbox/wikiMdxCheckbox.d.ts +7 -0
  74. package/dist/media/mdx/Chip/wikiMdxChip.d.ts +7 -0
  75. package/dist/media/mdx/ChipGroup/wikiMdxChipGroup.d.ts +7 -0
  76. package/dist/media/mdx/Dialog/wikiMdxDialog.d.ts +7 -0
  77. package/dist/media/mdx/Dummy/wikiMdxDummy.d.ts +7 -0
  78. package/dist/media/mdx/Field/wikiMdxField.d.ts +7 -0
  79. package/dist/media/mdx/FieldCounter/wikiMdxFieldCounter.d.ts +7 -0
  80. package/dist/media/mdx/FieldLabel/wikiMdxFieldLabel.d.ts +7 -0
  81. package/dist/media/mdx/FieldMessage/wikiMdxFieldMessage.d.ts +7 -0
  82. package/dist/media/mdx/Grid/wikiMdxGrid.d.ts +7 -0
  83. package/dist/media/mdx/GridItem/wikiMdxGridItem.d.ts +7 -0
  84. package/dist/media/mdx/Group/wikiMdxGroup.d.ts +7 -0
  85. package/dist/media/mdx/HorizontalScroll/wikiMdxHorizontalScroll.d.ts +7 -0
  86. package/dist/media/mdx/Icon/wikiMdxIcon.d.ts +2 -0
  87. package/dist/media/mdx/Image/wikiMdxImage.d.ts +2 -0
  88. package/dist/media/mdx/Input/wikiMdxInput.d.ts +7 -0
  89. package/dist/media/mdx/List/wikiMdxList.d.ts +7 -0
  90. package/dist/media/mdx/ListGroup/wikiMdxListGroup.d.ts +7 -0
  91. package/dist/media/mdx/ListItem/wikiMdxListItem.d.ts +7 -0
  92. package/dist/media/mdx/ListMenu/wikiMdxListMenu.d.ts +7 -0
  93. package/dist/media/mdx/Mask/wikiMdxMask.d.ts +7 -0
  94. package/dist/media/mdx/Menu/wikiMdxMenu.d.ts +3 -0
  95. package/dist/media/mdx/Modal/wikiMdxModal.d.ts +7 -0
  96. package/dist/media/mdx/MotionAxis/wikiMdxMotionAxis.d.ts +7 -0
  97. package/dist/media/mdx/MotionTransform/wikiMdxMotionTransform.d.ts +7 -0
  98. package/dist/media/mdx/Page/wikiMdxPage.d.ts +7 -0
  99. package/dist/media/mdx/Progress/wikiMdxProgress.d.ts +2 -0
  100. package/dist/media/mdx/Ripple/wikiMdxRipple.d.ts +2 -0
  101. package/dist/media/mdx/Scrollbar/wikiMdxScrollbar.d.ts +7 -0
  102. package/dist/media/mdx/Section/wikiMdxSection.d.ts +7 -0
  103. package/dist/media/mdx/Select/wikiMdxSelect.d.ts +7 -0
  104. package/dist/media/mdx/SelectValue/wikiMdxSelectValue.d.ts +7 -0
  105. package/dist/media/mdx/Skeleton/wikiMdxSkeleton.d.ts +2 -0
  106. package/dist/media/mdx/Snackbar/wikiMdxSnackbar.d.ts +7 -0
  107. package/dist/media/mdx/SnackbarItem/wikiMdxSnackbarItem.d.ts +7 -0
  108. package/dist/media/mdx/TabItem/wikiMdxTabItem.d.ts +7 -0
  109. package/dist/media/mdx/Tabs/wikiMdxTabs.d.ts +7 -0
  110. package/dist/media/mdx/TabsNavigation/wikiMdxTabsNavigation.d.ts +7 -0
  111. package/dist/media/mdx/Textarea/wikiMdxTextarea.d.ts +7 -0
  112. package/dist/media/mdx/TextareaAutosize/wikiMdxTextareaAutosize.d.ts +7 -0
  113. package/dist/media/mdx/Tooltip/wikiMdxTooltip.d.ts +7 -0
  114. package/dist/media/mdx/Window/wikiMdxWindow.d.ts +7 -0
  115. package/dist/media/mdx/event/wikiMdxEvent.d.ts +2 -0
  116. package/dist/media/mdx/expose/wikiMdxExpose.d.ts +2 -0
  117. package/dist/media/mdx/slot/wikiMdxSlot.d.ts +2 -0
  118. package/dist/media/mdx/style/wikiMdxStyle.d.ts +2 -0
  119. package/dist/media/mdx/value/wikiMdxValue.d.ts +2 -0
  120. package/dist/media/mdx/wikiMdx.d.ts +2 -0
  121. package/dist/media/props/wiki.d.ts +2 -0
  122. package/dist/media/props/wikiActions.d.ts +7 -0
  123. package/dist/media/props/wikiActionsInclude.d.ts +7 -0
  124. package/dist/media/props/wikiAnchor.d.ts +7 -0
  125. package/dist/media/props/wikiAria.d.ts +7 -0
  126. package/dist/media/props/wikiArrow.d.ts +7 -0
  127. package/dist/media/props/wikiArrowInclude.d.ts +7 -0
  128. package/dist/media/props/wikiAttributes.d.ts +7 -0
  129. package/dist/media/props/wikiBadge.d.ts +7 -0
  130. package/dist/media/props/wikiBars.d.ts +7 -0
  131. package/dist/media/props/wikiBarsInclude.d.ts +7 -0
  132. package/dist/media/props/wikiButton.d.ts +7 -0
  133. package/dist/media/props/wikiCheckbox.d.ts +7 -0
  134. package/dist/media/props/wikiChip.d.ts +7 -0
  135. package/dist/media/props/wikiChipGroup.d.ts +7 -0
  136. package/dist/media/props/wikiDialog.d.ts +7 -0
  137. package/dist/media/props/wikiField.d.ts +7 -0
  138. package/dist/media/props/wikiFieldCounterInclude.d.ts +7 -0
  139. package/dist/media/props/wikiForm.d.ts +2 -0
  140. package/dist/media/props/wikiGridItem.d.ts +7 -0
  141. package/dist/media/props/wikiHook.d.ts +7 -0
  142. package/dist/media/props/wikiIcon.d.ts +2 -0
  143. package/dist/media/props/wikiIconInclude.d.ts +2 -0
  144. package/dist/media/props/wikiImage.d.ts +7 -0
  145. package/dist/media/props/wikiInformation.d.ts +2 -0
  146. package/dist/media/props/wikiInput.d.ts +7 -0
  147. package/dist/media/props/wikiList.d.ts +7 -0
  148. package/dist/media/props/wikiListItem.d.ts +7 -0
  149. package/dist/media/props/wikiMask.d.ts +7 -0
  150. package/dist/media/props/wikiMaskInclude.d.ts +7 -0
  151. package/dist/media/props/wikiMenu.d.ts +7 -0
  152. package/dist/media/props/wikiMotionAxis.d.ts +7 -0
  153. package/dist/media/props/wikiMotionTransform.d.ts +7 -0
  154. package/dist/media/props/wikiOption.d.ts +7 -0
  155. package/dist/media/props/wikiProgress.d.ts +7 -0
  156. package/dist/media/props/wikiPropsTextarea.d.ts +7 -0
  157. package/dist/media/props/wikiScrollbar.d.ts +7 -0
  158. package/dist/media/props/wikiSelect.d.ts +7 -0
  159. package/dist/media/props/wikiSelectValue.d.ts +7 -0
  160. package/dist/media/props/wikiSnackbar.d.ts +7 -0
  161. package/dist/media/props/wikiSnackbarItem.d.ts +7 -0
  162. package/dist/media/props/wikiStatus.d.ts +7 -0
  163. package/dist/media/props/wikiStyle.d.ts +7 -0
  164. package/dist/media/props/wikiTabs.d.ts +7 -0
  165. package/dist/media/props/wikiTabsNavigation.d.ts +7 -0
  166. package/dist/media/props/wikiTechnical.d.ts +7 -0
  167. package/dist/media/props/wikiText.d.ts +7 -0
  168. package/dist/media/props/wikiTooltip.d.ts +7 -0
  169. package/dist/media/props/wikiValue.d.ts +7 -0
  170. package/dist/media/props/wikiWindow.d.ts +7 -0
  171. package/dist/media.d.ts +8 -0
  172. package/dist/media.js +5523 -0
  173. package/dist/storybook.d.ts +2 -0
  174. package/dist/storybook.js +26931 -0
  175. package/dist/storybookTypes-RNr8gPGw.js +8 -0
  176. package/dist/types/storybookTypes.d.ts +244 -0
  177. package/dist/types/wikiTypes.d.ts +9 -0
  178. package/dist/wikiDescriptions-Cv4WzSNL.js +2782 -0
  179. package/package.json +21 -8
  180. package/src/library.ts +7 -10
  181. package/src/assets/demo/demo-pdf.pdf +0 -0
  182. package/src/assets/image/image-1.jpeg +0 -0
  183. package/src/assets/image/image-2.jpeg +0 -0
  184. package/src/assets/image/phone-1.png +0 -0
  185. package/src/assets/image/phone-2.png +0 -0
  186. package/src/assets/image/phone-3.png +0 -0
  187. package/src/classes/WikiStorybook.ts +0 -353
  188. package/src/classes/WikiStorybookDescriptions.ts +0 -77
  189. package/src/classes/WikiStorybookItem.ts +0 -400
  190. package/src/classes/WikiStorybookProp.ts +0 -118
  191. package/src/documentation/storybook/StorybookMain.tsx +0 -28
  192. package/src/library-lite.ts +0 -9
  193. package/src/media/descriptions/wikiDescriptions.ts +0 -109
  194. package/src/media/descriptions/wikiDescriptionsAccordion.ts +0 -177
  195. package/src/media/descriptions/wikiDescriptionsActionSheet.ts +0 -148
  196. package/src/media/descriptions/wikiDescriptionsActions.ts +0 -73
  197. package/src/media/descriptions/wikiDescriptionsAnchor.ts +0 -49
  198. package/src/media/descriptions/wikiDescriptionsArrow.ts +0 -193
  199. package/src/media/descriptions/wikiDescriptionsBadge.ts +0 -150
  200. package/src/media/descriptions/wikiDescriptionsBars.ts +0 -177
  201. package/src/media/descriptions/wikiDescriptionsBlock.ts +0 -115
  202. package/src/media/descriptions/wikiDescriptionsButton.ts +0 -200
  203. package/src/media/descriptions/wikiDescriptionsCell.ts +0 -121
  204. package/src/media/descriptions/wikiDescriptionsCheckbox.ts +0 -134
  205. package/src/media/descriptions/wikiDescriptionsChip.ts +0 -144
  206. package/src/media/descriptions/wikiDescriptionsChipGroup.ts +0 -113
  207. package/src/media/descriptions/wikiDescriptionsDialog.ts +0 -198
  208. package/src/media/descriptions/wikiDescriptionsDummy.ts +0 -42
  209. package/src/media/descriptions/wikiDescriptionsField.ts +0 -222
  210. package/src/media/descriptions/wikiDescriptionsFieldCounter.ts +0 -75
  211. package/src/media/descriptions/wikiDescriptionsFieldLabel.ts +0 -46
  212. package/src/media/descriptions/wikiDescriptionsFieldMessage.ts +0 -71
  213. package/src/media/descriptions/wikiDescriptionsGrid.ts +0 -68
  214. package/src/media/descriptions/wikiDescriptionsGridItem.ts +0 -55
  215. package/src/media/descriptions/wikiDescriptionsGroup.ts +0 -118
  216. package/src/media/descriptions/wikiDescriptionsHorizontalScroll.ts +0 -93
  217. package/src/media/descriptions/wikiDescriptionsIcon.ts +0 -134
  218. package/src/media/descriptions/wikiDescriptionsImage.ts +0 -197
  219. package/src/media/descriptions/wikiDescriptionsInput.ts +0 -264
  220. package/src/media/descriptions/wikiDescriptionsList.ts +0 -131
  221. package/src/media/descriptions/wikiDescriptionsListGroup.ts +0 -99
  222. package/src/media/descriptions/wikiDescriptionsListItem.ts +0 -167
  223. package/src/media/descriptions/wikiDescriptionsListMenu.ts +0 -97
  224. package/src/media/descriptions/wikiDescriptionsMask.ts +0 -239
  225. package/src/media/descriptions/wikiDescriptionsMenu.ts +0 -228
  226. package/src/media/descriptions/wikiDescriptionsModal.ts +0 -143
  227. package/src/media/descriptions/wikiDescriptionsMotionAxis.ts +0 -196
  228. package/src/media/descriptions/wikiDescriptionsMotionTransform.ts +0 -235
  229. package/src/media/descriptions/wikiDescriptionsPage.ts +0 -116
  230. package/src/media/descriptions/wikiDescriptionsProgress.ts +0 -220
  231. package/src/media/descriptions/wikiDescriptionsRipple.ts +0 -52
  232. package/src/media/descriptions/wikiDescriptionsScrollbar.ts +0 -111
  233. package/src/media/descriptions/wikiDescriptionsSection.ts +0 -116
  234. package/src/media/descriptions/wikiDescriptionsSelect.ts +0 -223
  235. package/src/media/descriptions/wikiDescriptionsSelectValue.ts +0 -85
  236. package/src/media/descriptions/wikiDescriptionsSkeleton.ts +0 -140
  237. package/src/media/descriptions/wikiDescriptionsSnackbar.ts +0 -86
  238. package/src/media/descriptions/wikiDescriptionsSnackbarItem.ts +0 -96
  239. package/src/media/descriptions/wikiDescriptionsTabItem.ts +0 -79
  240. package/src/media/descriptions/wikiDescriptionsTabs.ts +0 -115
  241. package/src/media/descriptions/wikiDescriptionsTabsNavigation.ts +0 -102
  242. package/src/media/descriptions/wikiDescriptionsTextarea.ts +0 -58
  243. package/src/media/descriptions/wikiDescriptionsTextareaAutosize.ts +0 -57
  244. package/src/media/descriptions/wikiDescriptionsTooltip.ts +0 -105
  245. package/src/media/descriptions/wikiDescriptionsWindow.ts +0 -241
  246. package/src/media/mdx/Accordion/accordion.en.mdx +0 -59
  247. package/src/media/mdx/Accordion/accordion.ru.mdx +0 -59
  248. package/src/media/mdx/Accordion/slots.en.mdx +0 -9
  249. package/src/media/mdx/Accordion/slots.ru.mdx +0 -9
  250. package/src/media/mdx/Accordion/wikiMdxAccordion.ts +0 -25
  251. package/src/media/mdx/ActionSheet/actionSheet.en.mdx +0 -61
  252. package/src/media/mdx/ActionSheet/actionSheet.ru.mdx +0 -61
  253. package/src/media/mdx/ActionSheet/touchClose.en.mdx +0 -21
  254. package/src/media/mdx/ActionSheet/touchClose.ru.mdx +0 -21
  255. package/src/media/mdx/ActionSheet/wikiMdxActionSheet.ts +0 -25
  256. package/src/media/mdx/Actions/actions.en.mdx +0 -48
  257. package/src/media/mdx/Actions/actions.ru.mdx +0 -48
  258. package/src/media/mdx/Actions/flexible.en.mdx +0 -19
  259. package/src/media/mdx/Actions/flexible.ru.mdx +0 -19
  260. package/src/media/mdx/Actions/list.en.mdx +0 -50
  261. package/src/media/mdx/Actions/list.ru.mdx +0 -50
  262. package/src/media/mdx/Actions/wikiMdxActions.ts +0 -31
  263. package/src/media/mdx/Anchor/anchor.en.mdx +0 -34
  264. package/src/media/mdx/Anchor/anchor.ru.mdx +0 -34
  265. package/src/media/mdx/Anchor/expose.go.en.mdx +0 -1
  266. package/src/media/mdx/Anchor/expose.go.ru.mdx +0 -1
  267. package/src/media/mdx/Anchor/hide.en.mdx +0 -28
  268. package/src/media/mdx/Anchor/hide.ru.mdx +0 -28
  269. package/src/media/mdx/Anchor/isCopy.en.mdx +0 -23
  270. package/src/media/mdx/Anchor/isCopy.ru.mdx +0 -23
  271. package/src/media/mdx/Anchor/scroll.en.mdx +0 -34
  272. package/src/media/mdx/Anchor/scroll.ru.mdx +0 -35
  273. package/src/media/mdx/Anchor/wikiMdxAnchor.ts +0 -43
  274. package/src/media/mdx/Arrow/arrow.en.mdx +0 -33
  275. package/src/media/mdx/Arrow/arrow.ru.mdx +0 -33
  276. package/src/media/mdx/Arrow/wikiMdxArrow.ts +0 -19
  277. package/src/media/mdx/Badge/badge.en.mdx +0 -89
  278. package/src/media/mdx/Badge/badge.ru.mdx +0 -89
  279. package/src/media/mdx/Badge/dot.en.mdx +0 -21
  280. package/src/media/mdx/Badge/dot.ru.mdx +0 -21
  281. package/src/media/mdx/Badge/outline.en.mdx +0 -16
  282. package/src/media/mdx/Badge/outline.ru.mdx +0 -16
  283. package/src/media/mdx/Badge/primary.en.mdx +0 -16
  284. package/src/media/mdx/Badge/primary.ru.mdx +0 -16
  285. package/src/media/mdx/Badge/secondary.en.mdx +0 -16
  286. package/src/media/mdx/Badge/secondary.ru.mdx +0 -16
  287. package/src/media/mdx/Badge/wikiMdxBadge.ts +0 -43
  288. package/src/media/mdx/Bars/action.en.mdx +0 -84
  289. package/src/media/mdx/Bars/action.ru.mdx +0 -84
  290. package/src/media/mdx/Bars/bars.en.mdx +0 -97
  291. package/src/media/mdx/Bars/bars.ru.mdx +0 -98
  292. package/src/media/mdx/Bars/slots.en.mdx +0 -2
  293. package/src/media/mdx/Bars/slots.ru.mdx +0 -2
  294. package/src/media/mdx/Bars/v-model.en.mdx +0 -28
  295. package/src/media/mdx/Bars/v-model.ru.mdx +0 -28
  296. package/src/media/mdx/Bars/wikiMdxBars.ts +0 -37
  297. package/src/media/mdx/Block/block.en.mdx +0 -42
  298. package/src/media/mdx/Block/block.ru.mdx +0 -42
  299. package/src/media/mdx/Block/differences.en.mdx +0 -47
  300. package/src/media/mdx/Block/differences.ru.mdx +0 -47
  301. package/src/media/mdx/Block/wikiMdxBlock.ts +0 -25
  302. package/src/media/mdx/Button/button.en.mdx +0 -29
  303. package/src/media/mdx/Button/button.ru.mdx +0 -29
  304. package/src/media/mdx/Button/outline.en.mdx +0 -16
  305. package/src/media/mdx/Button/outline.ru.mdx +0 -16
  306. package/src/media/mdx/Button/primary.en.mdx +0 -16
  307. package/src/media/mdx/Button/primary.ru.mdx +0 -16
  308. package/src/media/mdx/Button/secondary.en.mdx +0 -16
  309. package/src/media/mdx/Button/secondary.ru.mdx +0 -16
  310. package/src/media/mdx/Button/text.en.mdx +0 -16
  311. package/src/media/mdx/Button/text.ru.mdx +0 -16
  312. package/src/media/mdx/Button/wikiMdxButton.ts +0 -43
  313. package/src/media/mdx/Cell/cell.en.mdx +0 -57
  314. package/src/media/mdx/Cell/cell.ru.mdx +0 -57
  315. package/src/media/mdx/Cell/slots.en.mdx +0 -8
  316. package/src/media/mdx/Cell/slots.ru.mdx +0 -8
  317. package/src/media/mdx/Cell/wikiMdxCell.ts +0 -25
  318. package/src/media/mdx/Checkbox/checkbox.en.mdx +0 -22
  319. package/src/media/mdx/Checkbox/checkbox.ru.mdx +0 -22
  320. package/src/media/mdx/Checkbox/indeterminate.en.mdx +0 -61
  321. package/src/media/mdx/Checkbox/indeterminate.ru.mdx +0 -61
  322. package/src/media/mdx/Checkbox/value.en.mdx +0 -64
  323. package/src/media/mdx/Checkbox/value.ru.mdx +0 -64
  324. package/src/media/mdx/Checkbox/wikiMdxCheckbox.ts +0 -31
  325. package/src/media/mdx/Chip/assistive.en.mdx +0 -16
  326. package/src/media/mdx/Chip/assistive.ru.mdx +0 -16
  327. package/src/media/mdx/Chip/chip.en.mdx +0 -75
  328. package/src/media/mdx/Chip/chip.ru.mdx +0 -75
  329. package/src/media/mdx/Chip/input.en.mdx +0 -16
  330. package/src/media/mdx/Chip/input.ru.mdx +0 -16
  331. package/src/media/mdx/Chip/wikiMdxChip.ts +0 -31
  332. package/src/media/mdx/ChipGroup/chipGroup.en.mdx +0 -51
  333. package/src/media/mdx/ChipGroup/chipGroup.ru.mdx +0 -51
  334. package/src/media/mdx/ChipGroup/selected.en.mdx +0 -50
  335. package/src/media/mdx/ChipGroup/selected.ru.mdx +0 -50
  336. package/src/media/mdx/ChipGroup/wikiMdxChipGroup.ts +0 -25
  337. package/src/media/mdx/Dialog/buttons.en.mdx +0 -45
  338. package/src/media/mdx/Dialog/buttons.ru.mdx +0 -45
  339. package/src/media/mdx/Dialog/dialog.en.mdx +0 -66
  340. package/src/media/mdx/Dialog/dialog.ru.mdx +0 -65
  341. package/src/media/mdx/Dialog/events.en.mdx +0 -63
  342. package/src/media/mdx/Dialog/events.ru.mdx +0 -63
  343. package/src/media/mdx/Dialog/states.en.mdx +0 -58
  344. package/src/media/mdx/Dialog/states.ru.mdx +0 -57
  345. package/src/media/mdx/Dialog/wikiMdxDialog.ts +0 -37
  346. package/src/media/mdx/Dummy/dummy.en.mdx +0 -35
  347. package/src/media/mdx/Dummy/dummy.ru.mdx +0 -35
  348. package/src/media/mdx/Dummy/wikiMdxDummy.ts +0 -19
  349. package/src/media/mdx/Field/arrows.en.mdx +0 -91
  350. package/src/media/mdx/Field/arrows.ru.mdx +0 -91
  351. package/src/media/mdx/Field/cancel.en.mdx +0 -54
  352. package/src/media/mdx/Field/cancel.ru.mdx +0 -54
  353. package/src/media/mdx/Field/field.en.mdx +0 -52
  354. package/src/media/mdx/Field/field.ru.mdx +0 -52
  355. package/src/media/mdx/Field/slots.en.mdx +0 -10
  356. package/src/media/mdx/Field/slots.ru.mdx +0 -10
  357. package/src/media/mdx/Field/value.en.mdx +0 -49
  358. package/src/media/mdx/Field/value.ru.mdx +0 -49
  359. package/src/media/mdx/Field/width.en.mdx +0 -28
  360. package/src/media/mdx/Field/width.ru.mdx +0 -26
  361. package/src/media/mdx/Field/wikiMdxField.ts +0 -49
  362. package/src/media/mdx/FieldCounter/fieldCounter.en.mdx +0 -34
  363. package/src/media/mdx/FieldCounter/fieldCounter.ru.mdx +0 -34
  364. package/src/media/mdx/FieldCounter/templates.en.mdx +0 -39
  365. package/src/media/mdx/FieldCounter/templates.ru.mdx +0 -39
  366. package/src/media/mdx/FieldCounter/wikiMdxFieldCounter.ts +0 -25
  367. package/src/media/mdx/FieldLabel/fieldLabel.en.mdx +0 -39
  368. package/src/media/mdx/FieldLabel/fieldLabel.ru.mdx +0 -39
  369. package/src/media/mdx/FieldLabel/wikiMdxFieldLabel.ts +0 -19
  370. package/src/media/mdx/FieldMessage/fieldMessage.en.mdx +0 -38
  371. package/src/media/mdx/FieldMessage/fieldMessage.ru.mdx +0 -38
  372. package/src/media/mdx/FieldMessage/slots.en.mdx +0 -7
  373. package/src/media/mdx/FieldMessage/slots.ru.mdx +0 -7
  374. package/src/media/mdx/FieldMessage/wikiMdxFieldMessage.ts +0 -25
  375. package/src/media/mdx/Grid/grid.en.mdx +0 -21
  376. package/src/media/mdx/Grid/grid.ru.mdx +0 -23
  377. package/src/media/mdx/Grid/wikiMdxGrid.ts +0 -19
  378. package/src/media/mdx/GridItem/gridItem.en.mdx +0 -25
  379. package/src/media/mdx/GridItem/gridItem.ru.mdx +0 -27
  380. package/src/media/mdx/GridItem/wikiMdxGridItem.ts +0 -19
  381. package/src/media/mdx/Group/group.en.mdx +0 -40
  382. package/src/media/mdx/Group/group.ru.mdx +0 -40
  383. package/src/media/mdx/Group/wikiMdxGroup.ts +0 -19
  384. package/src/media/mdx/HorizontalScroll/expose.toSelected.en.mdx +0 -1
  385. package/src/media/mdx/HorizontalScroll/expose.toSelected.ru.mdx +0 -1
  386. package/src/media/mdx/HorizontalScroll/horizontalScroll.en.mdx +0 -62
  387. package/src/media/mdx/HorizontalScroll/horizontalScroll.ru.mdx +0 -62
  388. package/src/media/mdx/HorizontalScroll/selected.en.mdx +0 -33
  389. package/src/media/mdx/HorizontalScroll/selected.ru.mdx +0 -33
  390. package/src/media/mdx/HorizontalScroll/wikiMdxHorizontalScroll.ts +0 -31
  391. package/src/media/mdx/Icon/expose.isActive.en.mdx +0 -1
  392. package/src/media/mdx/Icon/expose.isActive.ru.mdx +0 -1
  393. package/src/media/mdx/Icon/icon.en.mdx +0 -77
  394. package/src/media/mdx/Icon/icon.ru.mdx +0 -42
  395. package/src/media/mdx/Icon/wikiMdxIcon.ts +0 -21
  396. package/src/media/mdx/Image/adaptive.en.mdx +0 -75
  397. package/src/media/mdx/Image/adaptive.ru.mdx +0 -75
  398. package/src/media/mdx/Image/event.load.en.mdx +0 -39
  399. package/src/media/mdx/Image/event.load.ru.mdx +0 -39
  400. package/src/media/mdx/Image/expose.en.mdx +0 -12
  401. package/src/media/mdx/Image/expose.ru.mdx +0 -12
  402. package/src/media/mdx/Image/flag.en.mdx +0 -23
  403. package/src/media/mdx/Image/flag.ru.mdx +0 -23
  404. package/src/media/mdx/Image/image.en.mdx +0 -51
  405. package/src/media/mdx/Image/image.ru.mdx +0 -51
  406. package/src/media/mdx/Image/img-tag.en.mdx +0 -105
  407. package/src/media/mdx/Image/img-tag.ru.mdx +0 -105
  408. package/src/media/mdx/Image/size.en.mdx +0 -32
  409. package/src/media/mdx/Image/size.ru.mdx +0 -32
  410. package/src/media/mdx/Image/value.en.mdx +0 -23
  411. package/src/media/mdx/Image/value.ru.mdx +0 -23
  412. package/src/media/mdx/Image/wikiMdxImage.ts +0 -58
  413. package/src/media/mdx/Input/currency.en.mdx +0 -38
  414. package/src/media/mdx/Input/currency.ru.mdx +0 -38
  415. package/src/media/mdx/Input/date.en.mdx +0 -53
  416. package/src/media/mdx/Input/date.ru.mdx +0 -53
  417. package/src/media/mdx/Input/input.en.mdx +0 -143
  418. package/src/media/mdx/Input/input.ru.mdx +0 -71
  419. package/src/media/mdx/Input/mask.en.mdx +0 -30
  420. package/src/media/mdx/Input/mask.ru.mdx +0 -30
  421. package/src/media/mdx/Input/number.en.mdx +0 -41
  422. package/src/media/mdx/Input/number.ru.mdx +0 -41
  423. package/src/media/mdx/Input/type.en.mdx +0 -26
  424. package/src/media/mdx/Input/type.ru.mdx +0 -26
  425. package/src/media/mdx/Input/wikiMdxInput.ts +0 -49
  426. package/src/media/mdx/List/event.close.en.mdx +0 -8
  427. package/src/media/mdx/List/event.close.ru.mdx +0 -8
  428. package/src/media/mdx/List/list.en.mdx +0 -64
  429. package/src/media/mdx/List/list.ru.mdx +0 -64
  430. package/src/media/mdx/List/lite.en.mdx +0 -24
  431. package/src/media/mdx/List/lite.ru.mdx +0 -24
  432. package/src/media/mdx/List/slot.html.en.mdx +0 -1
  433. package/src/media/mdx/List/slot.html.ru.mdx +0 -1
  434. package/src/media/mdx/List/wikiMdxList.ts +0 -37
  435. package/src/media/mdx/ListGroup/listGroup.en.mdx +0 -56
  436. package/src/media/mdx/ListGroup/listGroup.ru.mdx +0 -56
  437. package/src/media/mdx/ListGroup/slots.en.mdx +0 -2
  438. package/src/media/mdx/ListGroup/slots.ru.mdx +0 -2
  439. package/src/media/mdx/ListGroup/wikiMdxListGroup.ts +0 -25
  440. package/src/media/mdx/ListItem/basic.en.mdx +0 -55
  441. package/src/media/mdx/ListItem/basic.ru.mdx +0 -55
  442. package/src/media/mdx/ListItem/fill.en.mdx +0 -24
  443. package/src/media/mdx/ListItem/fill.ru.mdx +0 -24
  444. package/src/media/mdx/ListItem/slots.en.mdx +0 -2
  445. package/src/media/mdx/ListItem/slots.ru.mdx +0 -2
  446. package/src/media/mdx/ListItem/wikiMdxListItem.ts +0 -31
  447. package/src/media/mdx/ListMenu/listMenu.en.mdx +0 -63
  448. package/src/media/mdx/ListMenu/listMenu.ru.mdx +0 -63
  449. package/src/media/mdx/ListMenu/wikiMdxListMenu.ts +0 -19
  450. package/src/media/mdx/Mask/basic.en.mdx +0 -76
  451. package/src/media/mdx/Mask/basic.ru.mdx +0 -76
  452. package/src/media/mdx/Mask/dateTypes.en.mdx +0 -38
  453. package/src/media/mdx/Mask/dateTypes.ru.mdx +0 -38
  454. package/src/media/mdx/Mask/expose.en.mdx +0 -3
  455. package/src/media/mdx/Mask/expose.ru.mdx +0 -3
  456. package/src/media/mdx/Mask/groupSave.en.mdx +0 -26
  457. package/src/media/mdx/Mask/groupSave.ru.mdx +0 -26
  458. package/src/media/mdx/Mask/mask.en.mdx +0 -21
  459. package/src/media/mdx/Mask/mask.ru.mdx +0 -21
  460. package/src/media/mdx/Mask/match.en.mdx +0 -28
  461. package/src/media/mdx/Mask/match.ru.mdx +0 -28
  462. package/src/media/mdx/Mask/numberTypes.en.mdx +0 -38
  463. package/src/media/mdx/Mask/numberTypes.ru.mdx +0 -38
  464. package/src/media/mdx/Mask/pattern.en.mdx +0 -66
  465. package/src/media/mdx/Mask/pattern.ru.mdx +0 -66
  466. package/src/media/mdx/Mask/special.en.mdx +0 -106
  467. package/src/media/mdx/Mask/special.ru.mdx +0 -106
  468. package/src/media/mdx/Mask/type.en.mdx +0 -22
  469. package/src/media/mdx/Mask/type.ru.mdx +0 -22
  470. package/src/media/mdx/Mask/visible.en.mdx +0 -40
  471. package/src/media/mdx/Mask/visible.ru.mdx +0 -40
  472. package/src/media/mdx/Mask/wikiMdxMask.ts +0 -79
  473. package/src/media/mdx/Menu/ajax.en.mdx +0 -49
  474. package/src/media/mdx/Menu/ajax.ru.mdx +0 -49
  475. package/src/media/mdx/Menu/event.updateValue.en.mdx +0 -29
  476. package/src/media/mdx/Menu/event.updateValue.ru.mdx +0 -30
  477. package/src/media/mdx/Menu/expose.navigation.en.mdx +0 -2
  478. package/src/media/mdx/Menu/expose.navigation.ru.mdx +0 -2
  479. package/src/media/mdx/Menu/menu.en.mdx +0 -64
  480. package/src/media/mdx/Menu/menu.ru.mdx +0 -64
  481. package/src/media/mdx/Menu/navigation.en.mdx +0 -56
  482. package/src/media/mdx/Menu/navigation.ru.mdx +0 -56
  483. package/src/media/mdx/Menu/slots.control.en.mdx +0 -1
  484. package/src/media/mdx/Menu/slots.control.ru.mdx +0 -1
  485. package/src/media/mdx/Menu/slots.en.mdx +0 -14
  486. package/src/media/mdx/Menu/slots.ru.mdx +0 -14
  487. package/src/media/mdx/Menu/wikiMdxMenu.ts +0 -51
  488. package/src/media/mdx/Modal/differences.en.mdx +0 -130
  489. package/src/media/mdx/Modal/differences.ru.mdx +0 -65
  490. package/src/media/mdx/Modal/modal.en.mdx +0 -63
  491. package/src/media/mdx/Modal/modal.ru.mdx +0 -63
  492. package/src/media/mdx/Modal/wikiMdxModal.ts +0 -25
  493. package/src/media/mdx/MotionAxis/classes.en.mdx +0 -18
  494. package/src/media/mdx/MotionAxis/classes.ru.mdx +0 -18
  495. package/src/media/mdx/MotionAxis/event.en.mdx +0 -53
  496. package/src/media/mdx/MotionAxis/event.ru.mdx +0 -53
  497. package/src/media/mdx/MotionAxis/expose.en.mdx +0 -9
  498. package/src/media/mdx/MotionAxis/expose.ru.mdx +0 -9
  499. package/src/media/mdx/MotionAxis/motionAxis.en.mdx +0 -43
  500. package/src/media/mdx/MotionAxis/motionAxis.ru.mdx +0 -43
  501. package/src/media/mdx/MotionAxis/slots.en.mdx +0 -1
  502. package/src/media/mdx/MotionAxis/slots.ru.mdx +0 -1
  503. package/src/media/mdx/MotionAxis/v-model.en.mdx +0 -30
  504. package/src/media/mdx/MotionAxis/v-model.ru.mdx +0 -30
  505. package/src/media/mdx/MotionAxis/wikiMdxMotionAxis.ts +0 -49
  506. package/src/media/mdx/MotionTransform/animationHeadPosition.en.mdx +0 -18
  507. package/src/media/mdx/MotionTransform/animationHeadPosition.ru.mdx +0 -18
  508. package/src/media/mdx/MotionTransform/classes.en.mdx +0 -25
  509. package/src/media/mdx/MotionTransform/classes.ru.mdx +0 -25
  510. package/src/media/mdx/MotionTransform/events.en.mdx +0 -39
  511. package/src/media/mdx/MotionTransform/events.ru.mdx +0 -39
  512. package/src/media/mdx/MotionTransform/expose.en.mdx +0 -6
  513. package/src/media/mdx/MotionTransform/expose.motionTransformElement.en.mdx +0 -9
  514. package/src/media/mdx/MotionTransform/expose.motionTransformElement.ru.mdx +0 -9
  515. package/src/media/mdx/MotionTransform/expose.ru.mdx +0 -6
  516. package/src/media/mdx/MotionTransform/ignore.en.mdx +0 -32
  517. package/src/media/mdx/MotionTransform/ignore.ru.mdx +0 -32
  518. package/src/media/mdx/MotionTransform/motionTransform.en.mdx +0 -51
  519. package/src/media/mdx/MotionTransform/motionTransform.ru.mdx +0 -51
  520. package/src/media/mdx/MotionTransform/slots.en.mdx +0 -5
  521. package/src/media/mdx/MotionTransform/slots.ru.mdx +0 -5
  522. package/src/media/mdx/MotionTransform/v-model.en.mdx +0 -19
  523. package/src/media/mdx/MotionTransform/v-model.ru.mdx +0 -19
  524. package/src/media/mdx/MotionTransform/wikiMdxMotionTransform.ts +0 -67
  525. package/src/media/mdx/Page/page.en.mdx +0 -38
  526. package/src/media/mdx/Page/page.ru.mdx +0 -38
  527. package/src/media/mdx/Page/wikiMdxPage.ts +0 -19
  528. package/src/media/mdx/Progress/circular.en.mdx +0 -24
  529. package/src/media/mdx/Progress/circular.ru.mdx +0 -24
  530. package/src/media/mdx/Progress/delays.en.mdx +0 -24
  531. package/src/media/mdx/Progress/delays.ru.mdx +0 -24
  532. package/src/media/mdx/Progress/linear.en.mdx +0 -25
  533. package/src/media/mdx/Progress/linear.ru.mdx +0 -25
  534. package/src/media/mdx/Progress/progress.en.mdx +0 -71
  535. package/src/media/mdx/Progress/progress.ru.mdx +0 -71
  536. package/src/media/mdx/Progress/values.en.mdx +0 -24
  537. package/src/media/mdx/Progress/values.ru.mdx +0 -24
  538. package/src/media/mdx/Progress/wikiMdxProgress.ts +0 -38
  539. package/src/media/mdx/Ripple/ripple.en.mdx +0 -42
  540. package/src/media/mdx/Ripple/ripple.ru.mdx +0 -42
  541. package/src/media/mdx/Ripple/wikiMdxRipple.ts +0 -14
  542. package/src/media/mdx/Scrollbar/emits-include.en.mdx +0 -38
  543. package/src/media/mdx/Scrollbar/emits-include.ru.mdx +0 -38
  544. package/src/media/mdx/Scrollbar/emits.en.mdx +0 -38
  545. package/src/media/mdx/Scrollbar/emits.ru.mdx +0 -38
  546. package/src/media/mdx/Scrollbar/scrollbar.en.mdx +0 -39
  547. package/src/media/mdx/Scrollbar/scrollbar.ru.mdx +0 -39
  548. package/src/media/mdx/Scrollbar/wikiMdxScrollbar.ts +0 -31
  549. package/src/media/mdx/Section/section.en.mdx +0 -38
  550. package/src/media/mdx/Section/section.ru.mdx +0 -38
  551. package/src/media/mdx/Section/wikiMdxSection.ts +0 -19
  552. package/src/media/mdx/Select/select.en.mdx +0 -69
  553. package/src/media/mdx/Select/select.ru.mdx +0 -69
  554. package/src/media/mdx/Select/wikiMdxSelect.ts +0 -19
  555. package/src/media/mdx/SelectValue/selectValue.en.mdx +0 -64
  556. package/src/media/mdx/SelectValue/selectValue.ru.mdx +0 -64
  557. package/src/media/mdx/SelectValue/wikiMdxSelectValue.ts +0 -19
  558. package/src/media/mdx/Skeleton/classes.en.mdx +0 -13
  559. package/src/media/mdx/Skeleton/classes.ru.mdx +0 -13
  560. package/src/media/mdx/Skeleton/expose.isActive.en.mdx +0 -1
  561. package/src/media/mdx/Skeleton/expose.isActive.ru.mdx +0 -1
  562. package/src/media/mdx/Skeleton/skeleton.en.mdx +0 -45
  563. package/src/media/mdx/Skeleton/skeleton.ru.mdx +0 -45
  564. package/src/media/mdx/Skeleton/wikiMdxSkeleton.ts +0 -28
  565. package/src/media/mdx/Snackbar/adaptation.en.mdx +0 -10
  566. package/src/media/mdx/Snackbar/adaptation.ru.mdx +0 -10
  567. package/src/media/mdx/Snackbar/add.en.mdx +0 -44
  568. package/src/media/mdx/Snackbar/add.ru.mdx +0 -44
  569. package/src/media/mdx/Snackbar/event.hide.en.mdx +0 -12
  570. package/src/media/mdx/Snackbar/event.hide.ru.mdx +0 -12
  571. package/src/media/mdx/Snackbar/event.show.en.mdx +0 -11
  572. package/src/media/mdx/Snackbar/event.show.ru.mdx +0 -11
  573. package/src/media/mdx/Snackbar/expose.add.en.mdx +0 -1
  574. package/src/media/mdx/Snackbar/expose.add.ru.mdx +0 -1
  575. package/src/media/mdx/Snackbar/expose.clear.en.mdx +0 -1
  576. package/src/media/mdx/Snackbar/expose.clear.ru.mdx +0 -1
  577. package/src/media/mdx/Snackbar/expose.isItem.en.mdx +0 -1
  578. package/src/media/mdx/Snackbar/expose.isItem.ru.mdx +0 -1
  579. package/src/media/mdx/Snackbar/expose.remove.en.mdx +0 -1
  580. package/src/media/mdx/Snackbar/expose.remove.ru.mdx +0 -1
  581. package/src/media/mdx/Snackbar/position.en.mdx +0 -10
  582. package/src/media/mdx/Snackbar/position.ru.mdx +0 -10
  583. package/src/media/mdx/Snackbar/snackbar.en.mdx +0 -46
  584. package/src/media/mdx/Snackbar/snackbar.ru.mdx +0 -46
  585. package/src/media/mdx/Snackbar/wikiMdxSnackbar.ts +0 -73
  586. package/src/media/mdx/SnackbarItem/component.en.mdx +0 -9
  587. package/src/media/mdx/SnackbarItem/component.ru.mdx +0 -9
  588. package/src/media/mdx/SnackbarItem/event.close.en.mdx +0 -18
  589. package/src/media/mdx/SnackbarItem/event.close.ru.mdx +0 -18
  590. package/src/media/mdx/SnackbarItem/html.en.mdx +0 -6
  591. package/src/media/mdx/SnackbarItem/html.ru.mdx +0 -6
  592. package/src/media/mdx/SnackbarItem/role.en.mdx +0 -18
  593. package/src/media/mdx/SnackbarItem/role.ru.mdx +0 -18
  594. package/src/media/mdx/SnackbarItem/snackbarItem.en.mdx +0 -44
  595. package/src/media/mdx/SnackbarItem/snackbarItem.ru.mdx +0 -44
  596. package/src/media/mdx/SnackbarItem/wikiMdxSnackbarItem.ts +0 -47
  597. package/src/media/mdx/TabItem/tabItem.en.mdx +0 -52
  598. package/src/media/mdx/TabItem/tabItem.ru.mdx +0 -38
  599. package/src/media/mdx/TabItem/wikiMdxTabItem.ts +0 -19
  600. package/src/media/mdx/Tabs/tabs.en.mdx +0 -44
  601. package/src/media/mdx/Tabs/tabs.ru.mdx +0 -44
  602. package/src/media/mdx/Tabs/v-model.en.mdx +0 -27
  603. package/src/media/mdx/Tabs/v-model.ru.mdx +0 -27
  604. package/src/media/mdx/Tabs/wikiMdxTabs.ts +0 -25
  605. package/src/media/mdx/TabsNavigation/tabsNavigation.en.mdx +0 -40
  606. package/src/media/mdx/TabsNavigation/tabsNavigation.ru.mdx +0 -40
  607. package/src/media/mdx/TabsNavigation/v-model.en.mdx +0 -27
  608. package/src/media/mdx/TabsNavigation/v-model.ru.mdx +0 -27
  609. package/src/media/mdx/TabsNavigation/wikiMdxTabsNavigation.ts +0 -25
  610. package/src/media/mdx/Textarea/autosize.en.mdx +0 -35
  611. package/src/media/mdx/Textarea/autosize.ru.mdx +0 -35
  612. package/src/media/mdx/Textarea/textarea.en.mdx +0 -39
  613. package/src/media/mdx/Textarea/textarea.ru.mdx +0 -39
  614. package/src/media/mdx/Textarea/wikiMdxTextarea.ts +0 -25
  615. package/src/media/mdx/TextareaAutosize/textarea-autosize.en.mdx +0 -65
  616. package/src/media/mdx/TextareaAutosize/textarea-autosize.ru.mdx +0 -65
  617. package/src/media/mdx/TextareaAutosize/wikiMdxTextareaAutosize.ts +0 -19
  618. package/src/media/mdx/Tooltip/event.tooltip.en.mdx +0 -7
  619. package/src/media/mdx/Tooltip/event.tooltip.ru.mdx +0 -8
  620. package/src/media/mdx/Tooltip/slot.control.en.mdx +0 -5
  621. package/src/media/mdx/Tooltip/slot.control.ru.mdx +0 -5
  622. package/src/media/mdx/Tooltip/tooltip.en.mdx +0 -34
  623. package/src/media/mdx/Tooltip/tooltip.ru.mdx +0 -34
  624. package/src/media/mdx/Tooltip/wikiMdxTooltip.ts +0 -31
  625. package/src/media/mdx/Window/axis.en.mdx +0 -17
  626. package/src/media/mdx/Window/axis.ru.mdx +0 -17
  627. package/src/media/mdx/Window/classes.en.mdx +0 -11
  628. package/src/media/mdx/Window/classes.ru.mdx +0 -11
  629. package/src/media/mdx/Window/event.window.en.mdx +0 -31
  630. package/src/media/mdx/Window/event.window.ru.mdx +0 -31
  631. package/src/media/mdx/Window/expose.en.mdx +0 -17
  632. package/src/media/mdx/Window/expose.ru.mdx +0 -17
  633. package/src/media/mdx/Window/hooks.en.mdx +0 -31
  634. package/src/media/mdx/Window/hooks.ru.mdx +0 -31
  635. package/src/media/mdx/Window/slots.en.mdx +0 -29
  636. package/src/media/mdx/Window/slots.ru.mdx +0 -29
  637. package/src/media/mdx/Window/staticMode.en.mdx +0 -10
  638. package/src/media/mdx/Window/staticMode.ru.mdx +0 -10
  639. package/src/media/mdx/Window/v-model.en.mdx +0 -25
  640. package/src/media/mdx/Window/v-model.ru.mdx +0 -25
  641. package/src/media/mdx/Window/wikiMdxWindow.ts +0 -67
  642. package/src/media/mdx/Window/window.en.mdx +0 -55
  643. package/src/media/mdx/Window/window.ru.mdx +0 -55
  644. package/src/media/mdx/event/events.actions.en.mdx +0 -44
  645. package/src/media/mdx/event/events.actions.ru.mdx +0 -44
  646. package/src/media/mdx/event/events.bars.en.mdx +0 -50
  647. package/src/media/mdx/event/events.bars.ru.mdx +0 -50
  648. package/src/media/mdx/event/events.beforeinput.en.mdx +0 -13
  649. package/src/media/mdx/event/events.beforeinput.ru.mdx +0 -13
  650. package/src/media/mdx/event/events.click.en.mdx +0 -36
  651. package/src/media/mdx/event/events.click.ru.mdx +0 -36
  652. package/src/media/mdx/event/events.focus.en.mdx +0 -13
  653. package/src/media/mdx/event/events.focus.ru.mdx +0 -13
  654. package/src/media/mdx/event/events.input.en.mdx +0 -89
  655. package/src/media/mdx/event/events.input.ru.mdx +0 -88
  656. package/src/media/mdx/event/events.inputStandard.en.mdx +0 -6
  657. package/src/media/mdx/event/events.inputStandard.ru.mdx +0 -6
  658. package/src/media/mdx/event/events.keyboard.en.mdx +0 -13
  659. package/src/media/mdx/event/events.keyboard.ru.mdx +0 -13
  660. package/src/media/mdx/event/events.paste.en.mdx +0 -6
  661. package/src/media/mdx/event/events.paste.ru.mdx +0 -6
  662. package/src/media/mdx/event/events.reset.en.mdx +0 -6
  663. package/src/media/mdx/event/events.reset.ru.mdx +0 -6
  664. package/src/media/mdx/event/wikiMdxEvent.ts +0 -68
  665. package/src/media/mdx/expose/expose.checkValidity.en.mdx +0 -1
  666. package/src/media/mdx/expose/expose.checkValidity.ru.mdx +0 -1
  667. package/src/media/mdx/expose/expose.clear.en.mdx +0 -1
  668. package/src/media/mdx/expose/expose.clear.ru.mdx +0 -1
  669. package/src/media/mdx/expose/expose.descriptionId.en.mdx +0 -2
  670. package/src/media/mdx/expose/expose.descriptionId.ru.mdx +0 -2
  671. package/src/media/mdx/expose/expose.detail.en.mdx +0 -1
  672. package/src/media/mdx/expose/expose.detail.ru.mdx +0 -1
  673. package/src/media/mdx/expose/expose.id.en.mdx +0 -2
  674. package/src/media/mdx/expose/expose.id.ru.mdx +0 -2
  675. package/src/media/mdx/expose/expose.labelId.en.mdx +0 -2
  676. package/src/media/mdx/expose/expose.labelId.ru.mdx +0 -2
  677. package/src/media/mdx/expose/expose.open.en.mdx +0 -1
  678. package/src/media/mdx/expose/expose.open.ru.mdx +0 -1
  679. package/src/media/mdx/expose/expose.selected.en.mdx +0 -4
  680. package/src/media/mdx/expose/expose.selected.ru.mdx +0 -4
  681. package/src/media/mdx/expose/expose.validationMessage.en.mdx +0 -1
  682. package/src/media/mdx/expose/expose.validationMessage.ru.mdx +0 -1
  683. package/src/media/mdx/expose/expose.value.en.mdx +0 -1
  684. package/src/media/mdx/expose/expose.value.ru.mdx +0 -1
  685. package/src/media/mdx/expose/wikiMdxExpose.ts +0 -68
  686. package/src/media/mdx/slot/body.en.mdx +0 -1
  687. package/src/media/mdx/slot/body.ru.mdx +0 -1
  688. package/src/media/mdx/slot/caption.en.mdx +0 -1
  689. package/src/media/mdx/slot/caption.ru.mdx +0 -1
  690. package/src/media/mdx/slot/control.en.mdx +0 -1
  691. package/src/media/mdx/slot/control.ru.mdx +0 -1
  692. package/src/media/mdx/slot/default.en.mdx +0 -1
  693. package/src/media/mdx/slot/default.ru.mdx +0 -1
  694. package/src/media/mdx/slot/description.en.mdx +0 -1
  695. package/src/media/mdx/slot/description.ru.mdx +0 -1
  696. package/src/media/mdx/slot/footer.en.mdx +0 -1
  697. package/src/media/mdx/slot/footer.ru.mdx +0 -1
  698. package/src/media/mdx/slot/headline.en.mdx +0 -1
  699. package/src/media/mdx/slot/headline.ru.mdx +0 -1
  700. package/src/media/mdx/slot/label.en.mdx +0 -1
  701. package/src/media/mdx/slot/label.ru.mdx +0 -1
  702. package/src/media/mdx/slot/leading.en.mdx +0 -1
  703. package/src/media/mdx/slot/leading.ru.mdx +0 -1
  704. package/src/media/mdx/slot/prefix.en.mdx +0 -1
  705. package/src/media/mdx/slot/prefix.ru.mdx +0 -1
  706. package/src/media/mdx/slot/secondary.en.mdx +0 -1
  707. package/src/media/mdx/slot/secondary.ru.mdx +0 -1
  708. package/src/media/mdx/slot/suffix.en.mdx +0 -1
  709. package/src/media/mdx/slot/suffix.ru.mdx +0 -1
  710. package/src/media/mdx/slot/trailing.en.mdx +0 -1
  711. package/src/media/mdx/slot/trailing.ru.mdx +0 -1
  712. package/src/media/mdx/slot/wikiMdxSlot.ts +0 -84
  713. package/src/media/mdx/style/adaptive.en.mdx +0 -10
  714. package/src/media/mdx/style/adaptive.ru.mdx +0 -10
  715. package/src/media/mdx/style/asPalette.en.mdx +0 -17
  716. package/src/media/mdx/style/asPalette.ru.mdx +0 -17
  717. package/src/media/mdx/style/dir.en.mdx +0 -17
  718. package/src/media/mdx/style/dir.ru.mdx +0 -17
  719. package/src/media/mdx/style/isSkeleton.en.mdx +0 -22
  720. package/src/media/mdx/style/isSkeleton.ru.mdx +0 -22
  721. package/src/media/mdx/style/wikiMdxStyle.ts +0 -20
  722. package/src/media/mdx/value/highlight.en.mdx +0 -25
  723. package/src/media/mdx/value/highlight.ru.mdx +0 -25
  724. package/src/media/mdx/value/labelNumber.en.mdx +0 -47
  725. package/src/media/mdx/value/labelNumber.ru.mdx +0 -47
  726. package/src/media/mdx/value/v-model-selected.en.mdx +0 -28
  727. package/src/media/mdx/value/v-model-selected.ru.mdx +0 -28
  728. package/src/media/mdx/value/v-model.en.mdx +0 -26
  729. package/src/media/mdx/value/v-model.ru.mdx +0 -26
  730. package/src/media/mdx/value/value.en.mdx +0 -10
  731. package/src/media/mdx/value/value.ru.mdx +0 -10
  732. package/src/media/mdx/value/wikiMdxValue.ts +0 -38
  733. package/src/media/mdx/wikiMdx.ts +0 -121
  734. package/src/media/props/wiki.ts +0 -107
  735. package/src/media/props/wikiActions.ts +0 -45
  736. package/src/media/props/wikiActionsInclude.ts +0 -66
  737. package/src/media/props/wikiAnchor.ts +0 -91
  738. package/src/media/props/wikiAria.ts +0 -145
  739. package/src/media/props/wikiArrow.ts +0 -25
  740. package/src/media/props/wikiArrowInclude.ts +0 -48
  741. package/src/media/props/wikiAttributes.ts +0 -211
  742. package/src/media/props/wikiBadge.ts +0 -48
  743. package/src/media/props/wikiBars.ts +0 -145
  744. package/src/media/props/wikiBarsInclude.ts +0 -87
  745. package/src/media/props/wikiButton.ts +0 -61
  746. package/src/media/props/wikiCheckbox.ts +0 -25
  747. package/src/media/props/wikiChip.ts +0 -37
  748. package/src/media/props/wikiChipGroup.ts +0 -39
  749. package/src/media/props/wikiDialog.ts +0 -33
  750. package/src/media/props/wikiField.ts +0 -121
  751. package/src/media/props/wikiFieldCounterInclude.ts +0 -89
  752. package/src/media/props/wikiForm.ts +0 -323
  753. package/src/media/props/wikiGridItem.ts +0 -73
  754. package/src/media/props/wikiHook.ts +0 -79
  755. package/src/media/props/wikiIcon.ts +0 -146
  756. package/src/media/props/wikiIconInclude.ts +0 -365
  757. package/src/media/props/wikiImage.ts +0 -208
  758. package/src/media/props/wikiInformation.ts +0 -220
  759. package/src/media/props/wikiInput.ts +0 -35
  760. package/src/media/props/wikiList.ts +0 -281
  761. package/src/media/props/wikiListItem.ts +0 -101
  762. package/src/media/props/wikiMask.ts +0 -123
  763. package/src/media/props/wikiMaskInclude.ts +0 -58
  764. package/src/media/props/wikiMenu.ts +0 -84
  765. package/src/media/props/wikiMotionAxis.ts +0 -55
  766. package/src/media/props/wikiMotionTransform.ts +0 -82
  767. package/src/media/props/wikiOption.ts +0 -410
  768. package/src/media/props/wikiProgress.ts +0 -104
  769. package/src/media/props/wikiPropsTextarea.ts +0 -24
  770. package/src/media/props/wikiScrollbar.ts +0 -89
  771. package/src/media/props/wikiSelect.ts +0 -68
  772. package/src/media/props/wikiSelectValue.ts +0 -30
  773. package/src/media/props/wikiSnackbar.ts +0 -58
  774. package/src/media/props/wikiSnackbarItem.ts +0 -39
  775. package/src/media/props/wikiStatus.ts +0 -172
  776. package/src/media/props/wikiStyle.ts +0 -382
  777. package/src/media/props/wikiTabs.ts +0 -15
  778. package/src/media/props/wikiTabsNavigation.ts +0 -54
  779. package/src/media/props/wikiTechnical.ts +0 -199
  780. package/src/media/props/wikiText.ts +0 -181
  781. package/src/media/props/wikiTooltip.ts +0 -53
  782. package/src/media/props/wikiValue.ts +0 -197
  783. package/src/media/props/wikiWindow.ts +0 -277
  784. package/src/media/styles/en/about.mdx +0 -79
  785. package/src/media/styles/en/color.mdx +0 -711
  786. package/src/media/styles/en/content.mdx +0 -29
  787. package/src/media/styles/en/dimension.mdx +0 -233
  788. package/src/media/styles/en/dir.mdx +0 -193
  789. package/src/media/styles/en/flex.mdx +0 -249
  790. package/src/media/styles/en/font.mdx +0 -171
  791. package/src/media/styles/en/margin.mdx +0 -115
  792. package/src/media/styles/en/media.mdx +0 -133
  793. package/src/media/styles/en/padding.mdx +0 -115
  794. package/src/media/styles/en/position.mdx +0 -183
  795. package/src/media/styles/en/rules.mdx +0 -117
  796. package/src/media/styles/en/scrollbar.mdx +0 -27
  797. package/src/media/styles/en/selector.mdx +0 -153
  798. package/src/media/styles/en/transform.mdx +0 -114
  799. package/src/media/styles/ru/about.mdx +0 -78
  800. package/src/media/styles/ru/color.mdx +0 -711
  801. package/src/media/styles/ru/content.mdx +0 -30
  802. package/src/media/styles/ru/dimension.mdx +0 -233
  803. package/src/media/styles/ru/dir.mdx +0 -193
  804. package/src/media/styles/ru/flex.mdx +0 -249
  805. package/src/media/styles/ru/font.mdx +0 -171
  806. package/src/media/styles/ru/margin.mdx +0 -115
  807. package/src/media/styles/ru/media.mdx +0 -133
  808. package/src/media/styles/ru/padding.mdx +0 -115
  809. package/src/media/styles/ru/position.mdx +0 -183
  810. package/src/media/styles/ru/rules.mdx +0 -117
  811. package/src/media/styles/ru/scrollbar.mdx +0 -27
  812. package/src/media/styles/ru/selector.mdx +0 -153
  813. package/src/media/styles/ru/transform.mdx +0 -114
  814. package/src/media.ts +0 -18
  815. package/src/storybook.tsx +0 -4
  816. package/src/types/storybookTypes.ts +0 -273
  817. package/src/types/wikiTypes.ts +0 -10
  818. package/src/vite-env.d.ts +0 -1
  819. /package/{src → dist}/shims-mdx.d.ts +0 -0
@@ -0,0 +1,2782 @@
1
+ //#endregion
2
+ //#region src/media/descriptions/wikiDescriptions.ts
3
+ var e = [
4
+ {
5
+ name: "Accordion",
6
+ description: {
7
+ en: "Expandable container component that reveals and hides content with smooth animations",
8
+ ru: "Раскрывающийся контейнерный компонент, который показывает и скрывает контент с плавными анимациями"
9
+ },
10
+ possibilities: {
11
+ en: [
12
+ "smooth expand/collapse animations via MotionTransform",
13
+ "composable header with label, description, and icons",
14
+ "automatic arrow rotation indicator",
15
+ "controlled or uncontrolled state management with v-model",
16
+ "divider line customization",
17
+ "custom cell attributes support",
18
+ "click event handling with custom data",
19
+ "flexible content slots for header and body"
20
+ ],
21
+ ru: [
22
+ "плавные анимации раскрытия/сворачивания через MotionTransform",
23
+ "композитная шапка с меткой, описанием и иконками",
24
+ "автоматический индикатор поворота стрелки",
25
+ "управление состоянием контролируемо или неконтролируемо через v-model",
26
+ "настройка линии разделителя",
27
+ "поддержка пользовательских атрибутов ячейки",
28
+ "обработка событий клика с пользовательскими данными",
29
+ "гибкие слоты контента для шапки и тела"
30
+ ]
31
+ },
32
+ import: ["import { ref } from 'vue'"],
33
+ render: "\n <DesignComponent v-bind=\"args\">\n <template #default>\n <p>Accordion content goes here. This section can contain any HTML elements, components, or text.</p>\n <p>You can include multiple paragraphs, lists, and other structured content to demonstrate the accordion's flexibility and behavior.</p>\n <ul>\n <li>First example item with some details</li>\n <li>Second example showing list formatting</li>\n <li>Third item demonstrating nested content</li>\n </ul>\n <p>Additional text can be added to show how the accordion handles longer content with smooth animations and proper spacing.</p>\n <div style=\"padding: 12px; background: #f5f5f5; border-radius: 4px; margin-top: 8px;\">\n <strong>Note:</strong> This is a highlighted section within the accordion body.\n </div>\n <p style=\"margin-top: 12px;\">The accordion component automatically manages the height transitions and ensures all content is properly displayed when expanded.</p>\n </template>\n </DesignComponent>\n <DesignComponent v-bind=\"args\">\n <template #default>\n <h4 style=\"margin-top: 0;\">Features Overview</h4>\n <p>This accordion demonstrates different content types and layout possibilities:</p>\n <ol>\n <li>Numbered lists for sequential information</li>\n <li>Headings for content structure</li>\n <li>Mixed content types in a single container</li>\n </ol>\n <p>The component supports various HTML elements and maintains proper spacing throughout the animation cycle.</p>\n <div style=\"display: flex; gap: 8px; margin-top: 12px;\">\n <span style=\"padding: 4px 8px; background: #e3f2fd; border-radius: 4px; font-size: 12px;\">Tag 1</span>\n <span style=\"padding: 4px 8px; background: #f3e5f5; border-radius: 4px; font-size: 12px;\">Tag 2</span>\n <span style=\"padding: 4px 8px; background: #e8f5e9; border-radius: 4px; font-size: 12px;\">Tag 3</span>\n </div>\n </template>\n </DesignComponent>\n <DesignComponent v-bind=\"args\">\n <template #default>\n <p>This is the third variant showing simplified content structure.</p>\n <p>Accordion components support various content formats while maintaining consistent behavior.</p>\n <h5>Key Features:</h5>\n <ul>\n <li>Flexible content layouts</li>\n <li>Smooth animations</li>\n <li>Easy customization</li>\n </ul>\n </template>\n </DesignComponent>\n ",
34
+ stories: [{
35
+ id: "AccordionVModel",
36
+ name: {
37
+ en: "Two-way binding (v-model)",
38
+ ru: "Двусторонняя привязка (v-model)"
39
+ },
40
+ setup: "\n return {\n open: ref(false)\n }\n ",
41
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"open = !open\">\n Toggle ({{ open }})\n </button>\n </div>\n <DesignComponent v-model:open=\"open\" label=\"Settings\" description=\"Click to expand\" icon=\"settings\">\n <template #default>\n <div class=\"wiki-storybook-item--padding\">\n <p>Content is {{ open ? 'visible' : 'hidden' }}</p>\n <p>Using <code>v-model:open</code> provides a clean and declarative way to manage the accordion's state from the parent. It simplifies the logic by removing the need for manual event handling (<code>@update:open</code>) and prop binding (<code>:open</code>).</p>\n <p>This two-way binding is ideal for scenarios where the parent component needs to know about and control the visibility of the accordion, such as in complex forms or coordinated UI interactions.</p>\n </div>\n </template>\n </DesignComponent>\n </div>\n "
42
+ }, {
43
+ id: "AccordionSlots",
44
+ name: {
45
+ en: "Slots usage",
46
+ ru: "Использование слотов"
47
+ },
48
+ template: "\n <DesignComponent label=\"Default label\" description=\"Default description\" icon=\"settings\">\n <template #label>Custom label slot</template>\n <template #description>Custom description slot</template>\n <template #caption>Custom caption slot</template>\n <template #trailing>Trailing slot</template>\n <template #default>\n <p>Custom default slot content (main accordion body)</p>\n </template>\n </DesignComponent>\n "
49
+ }],
50
+ documentation: {
51
+ body: "\n<StorybookDescriptions componentName={'Accordion'} type={'accordion'}/>\n\n<StorybookDescriptions componentName={'MotionTransform'} type={'v-model'}/>\n<Canvas of={Component.AccordionVModel}/>\n ",
52
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n<StorybookDescriptions componentName={'MotionTransform'} type={'events'}/>\n ",
53
+ expose: "\n<StorybookDescriptions componentName={'MotionTransform'} type={'expose.isShow'}/>\n<StorybookDescriptions componentName={'Window'} type={'expose'}/>\n<StorybookDescriptions componentName={'MotionTransform'} type={'expose.motionTransformElement'}/>\n ",
54
+ slots: "\n<Canvas of={Component.AccordionSlots}/>\n<StorybookDescriptions componentName={'Accordion'} type={'slots'}/>\n<StorybookDescriptions componentName={'Slot'} type={'label'}/>\n<StorybookDescriptions componentName={'Slot'} type={'caption'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n<StorybookDescriptions componentName={'Cell'} type={'slots'}/>\n "
55
+ },
56
+ ai: {
57
+ render: "\n<div :class=\"classDemo.item\">\n <Accordion :open=\"true\" :auto-close=\"false\" v-bind=\"args\">\n <div class=\"wiki-storybook-item--padding\">\n Hidden content\n </div>\n </Accordion>\n</div>\n ",
58
+ description: "\nCollapsible container for progressive disclosure. Toggles content visibility to manage space and cognitive load. Use for FAQs, grouped settings, hiding secondary info, or compact dashboards.\nHeader is based on a Cell component and supports label, description, and icon. Features an auto-rotating arrow indicator and smooth height transitions via MotionTransform.\nBuilt-in ARIA support and keyboard navigation (Space/Enter). Controlled primarily via v-model:open. Customizable with divider and header attributes through cellAttrs.\n "
59
+ }
60
+ },
61
+ {
62
+ name: "Actions",
63
+ description: {
64
+ en: "A flexible container component for organizing action buttons with primary and secondary groups, supporting various alignment options and adaptive behavior.",
65
+ ru: "Гибкий компонент-контейнер для организации кнопок действий с основной и вторичной группами, поддерживающий различные варианты выравнивания и адаптивное поведение."
66
+ },
67
+ possibilities: {
68
+ en: [
69
+ "Organizes action buttons into primary and secondary groups",
70
+ "Supports multiple alignment modes: left, right, center, block",
71
+ "Flexible layout that adapts to available space",
72
+ "Automatic spacing between button groups",
73
+ "Customizable button attributes for each group",
74
+ "Responsive behavior with adaptive breakpoints",
75
+ "Supports both array-based and slot-based button rendering"
76
+ ],
77
+ ru: [
78
+ "Организует кнопки действий в основные и вторичные группы",
79
+ "Поддерживает несколько режимов выравнивания: left, right, center, block",
80
+ "Гибкая раскладка, адаптирующаяся к доступному пространству",
81
+ "Автоматическое расстояние между группами кнопок",
82
+ "Настраиваемые атрибуты кнопок для каждой группы",
83
+ "Адаптивное поведение с точками перехода",
84
+ "Поддерживает рендеринг кнопок через массив и слоты"
85
+ ]
86
+ },
87
+ import: [],
88
+ stories: [{
89
+ id: "ActionsSlots",
90
+ name: {
91
+ en: "Slots usage",
92
+ ru: "Использование слотов"
93
+ },
94
+ template: "\n <DesignComponent>\n <template #secondary>\n Secondary Slot\n </template>\n <template #default>\n Default Slot\n </template>\n </DesignComponent>\n "
95
+ }],
96
+ documentation: {
97
+ body: "\n<StorybookDescriptions componentName={'Actions'} type={'actions'}/>\n<StorybookDescriptions componentName={'Actions'} type={'list'}/>\n<StorybookDescriptions componentName={'Actions'} type={'flexible'}/>\n ",
98
+ slots: "\n<Canvas of={Component.ActionsSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n<StorybookDescriptions componentName={'Slot'} type={'secondary'}/>\n "
99
+ },
100
+ ai: { description: "\nLayout container for action button groups, typically used in dialog footers, cards, or forms. Manages spacing, alignment, and separation between primary (main) and secondary action sets.\nSupports multiple alignments (left, center, right, block) and takes arrays of button props (list, listSecondary) to automatically render Button components.\nFeatures both array-based and slot-based rendering for maximum flexibility. Use for standardizing button layouts and ensuring consistent spacing.\n " }
101
+ },
102
+ {
103
+ name: "ActionSheet",
104
+ description: {
105
+ en: "Mobile-optimized modal component for displaying a list of actions or choices that slide up from the bottom",
106
+ ru: "Мобильно-оптимизированный модальный компонент для отображения списка действий или выборов, выдвигающийся снизу"
107
+ },
108
+ possibilities: {
109
+ en: [
110
+ "bottom-anchored modal panel with smooth slide-up animation",
111
+ "displays primary and secondary action lists",
112
+ "supports cancel button and custom actions",
113
+ "mobile-first design with touch-friendly interface",
114
+ "backdrop click to close functionality",
115
+ "keyboard accessibility support",
116
+ "integration with List and Actions components",
117
+ "customizable appearance and positioning",
118
+ "automatic height adjustment based on content",
119
+ "support for grouped actions with separators"
120
+ ],
121
+ ru: [
122
+ "модальная панель, закрепленная снизу, с плавной анимацией выдвижения",
123
+ "отображает основной и второстепенный списки действий",
124
+ "поддержка кнопки отмены и пользовательских действий",
125
+ "мобильно-ориентированный дизайн с удобным сенсорным интерфейсом",
126
+ "закрытие при клике на подложку",
127
+ "поддержка доступности с клавиатуры",
128
+ "интеграция с компонентами List и Actions",
129
+ "настраиваемый внешний вид и позиционирование",
130
+ "автоматическая подстройка высоты под контент",
131
+ "поддержка группировки действий с разделителями"
132
+ ]
133
+ },
134
+ import: ["import { ref } from 'vue'"],
135
+ render: "\n <DesignComponent v-bind=\"args\">\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Open Action Sheet</button>\n </template>\n\n <template #title>\n Action Sheet Menu\n </template>\n\n <template #default>\n <h4>Mobile Action Sheet Component</h4>\n <p>The Action Sheet component provides a mobile-optimized interface for presenting users with a set of actions or choices. It slides up from the bottom of the screen, following familiar patterns from iOS and Material Design guidelines.</p>\n\n <p>This component is particularly effective for contextual actions related to specific content, such as sharing options, editing tools, or destructive operations. The bottom-anchored design makes it easily accessible on mobile devices while maintaining a clear visual hierarchy.</p>\n\n <h4>Key Features</h4>\n <p>The Action Sheet includes support for primary and secondary action lists, allowing you to group related actions logically. It automatically handles touch interactions, backdrop dismissal, and keyboard accessibility, ensuring a consistent user experience across different input methods.</p>\n\n <p>Integration with List and Actions components provides flexibility in content presentation, while the customizable appearance adapts seamlessly to different design systems and brand requirements. The component automatically adjusts its height based on content, preventing overflow issues while maintaining optimal usability.</p>\n </template>\n </DesignComponent>\n ",
136
+ stories: [{
137
+ id: "ActionSheetVModel",
138
+ name: {
139
+ en: "Two-way binding (v-model)",
140
+ ru: "Двусторонняя привязка (v-model)"
141
+ },
142
+ setup: "\n return {\n open: ref(false)\n }\n ",
143
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"open = true\">Open via v-model ({{ open }})</button>\n </div>\n\n <DesignComponent v-model:open=\"open\">\n <div class=\"wiki-storybook-item--padding\">Your content here</div>\n </DesignComponent>\n </div>\n "
144
+ }, {
145
+ id: "ActionSheetAllSlots",
146
+ name: {
147
+ en: "All slots demonstration",
148
+ ru: "Демонстрация всех слотов"
149
+ },
150
+ template: "\n <DesignComponent>\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Open Action Sheet with All Slots</button>\n </template>\n\n <template #title>Title slot</template>\n <template #default>Default slot</template>\n <template #footer>Footer slot</template>\n </DesignComponent>\n "
151
+ }],
152
+ documentation: {
153
+ body: "\n<StorybookDescriptions componentName={'ActionSheet'} type={'actionSheet'}/>\n<StorybookDescriptions componentName={'ActionSheet'} type={'touchClose'}/>\n\n<StorybookDescriptions componentName={'Window'} type={'v-model'}/>\n<Canvas of={Component.ActionSheetVModel}/>\n\n<StorybookDescriptions componentName={'Modal'} type={'differences'}/>\n ",
154
+ events: "\n<StorybookDescriptions componentName={'Window'} type={'event.window'}/>\n<StorybookDescriptions componentName={'Event'} type={'bars'}/>\n ",
155
+ expose: "\n<StorybookDescriptions componentName={'Window'} type={'expose'}/>\n ",
156
+ slots: "\n<Canvas of={Component.ActionSheetAllSlots}/>\n<StorybookDescriptions componentName={'Window'} type={'slots'}/>\n "
157
+ },
158
+ ai: {
159
+ render: "\n<div :class=\"classDemo.item\" style=\"min-width: 800px;\">\n <ActionSheet embedded open v-bind=\"args\">\n <template #control=\"{ binds }\">\n <button v-bind=\"binds\">Open Menu</button>\n </template>\n <template #default>Content goes here...</template>\n </ActionSheet>\n</div>\n ",
160
+ description: "\nMobile-optimized modal component (Bottom Sheet) that slides up from the bottom for actions, choices, or secondary content. Follows standard mobile interface patterns (iOS/Material).\nFeatures touch-gestures (swipe-down to close), backdrop dismissal, and keyboard accessibility. Includes primary/secondary action lists and automatic height adjustment based on content.\nHighly flexible with slots (#control, #title, #default, #footer) and controlled primarily via v-model:open. Use for mobile-focused menus, sharing options, or contextual actions.\n "
161
+ }
162
+ },
163
+ {
164
+ name: "Anchor",
165
+ description: {
166
+ en: "Component for creating hyperlinks or anchor points for navigation",
167
+ ru: "Компонент для создания гиперссылок или якорных точек для навигации"
168
+ },
169
+ possibilities: {
170
+ en: [
171
+ "creating links to other pages or resources",
172
+ "creating anchor points for internal page navigation",
173
+ "support for icons and text",
174
+ "customizable appearance"
175
+ ],
176
+ ru: [
177
+ "создание ссылок на другие страницы или ресурсы",
178
+ "создание якорных точек для внутренней навигации по странице",
179
+ "поддержка иконок и текста",
180
+ "настраиваемый внешний вид"
181
+ ]
182
+ },
183
+ documentation: {
184
+ body: "\n<StorybookDescriptions componentName={'Anchor'} type={'anchor'}/>\n<StorybookDescriptions componentName={'Anchor'} type={'isCopy'}/>\n<StorybookDescriptions componentName={'Anchor'} type={'hide'}/>\n<StorybookDescriptions componentName={'Anchor'} type={'scroll'}/>\n",
185
+ expose: "\n<StorybookDescriptions componentName={'Anchor'} type={'expose.go'}/>\n",
186
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n"
187
+ },
188
+ ai: { description: "\nNavigation component for creating hyperlinks, internal page anchors, and interactive links. Wraps the native <a> tag with additional support for smooth scrolling and clipboard operations.\nFeatures automated scroll-to-id behavior with custom offsets and a built-in copy-to-clipboard function (isCopy). Supports icon integration for different link types and success feedback.\nControlled primarily through href or name props. Use for table of contents, permalinks, external resource links, or quick-copy action buttons for IDs and URLs.\n " }
189
+ },
190
+ {
191
+ name: "Arrow",
192
+ description: {
193
+ en: "Component for displaying an arrow or directional indicator",
194
+ ru: "Компонент для отображения стрелки или индикатора направления"
195
+ },
196
+ possibilities: {
197
+ en: [
198
+ "displaying directional arrows",
199
+ "customizable size and color",
200
+ "rotation support"
201
+ ],
202
+ ru: [
203
+ "отображение направляющих стрелок",
204
+ "настраиваемый размер и цвет",
205
+ "поддержка вращения"
206
+ ]
207
+ },
208
+ import: ["import { ref } from 'vue'"],
209
+ render: "\n <div class=\"wiki-storybook-item wiki-storybook-item--rectangle wiki-storybook-item--center\">\n <div>\n <div\n style=\"\n width: 256px;\n margin-bottom: 32px;\n margin-left: 32px;\n \"\n >\n <div\n id=\"id-arrow-target\"\n style=\"\n padding: 8px;\n width: min-content;\n border-radius: 8px;\n background-color: oklch(90.2% 0.063 306.703);\n \"\n >\n Target\n </div>\n </div>\n <div\n style=\"\n position: relative;\n width: 256px;\n height: 128px;\n border-radius: 16px;\n background-color: oklch(93.2% 0.032 255.585);\n border: 2px solid oklch(80.9% 0.105 251.813);\n box-shadow: 0 0 8px oklch(0.281 0.092 268.132 / 0.32);\n \"\n >\n <DesignComponent v-bind=\"args\"/>\n </div>\n </div>\n </div>\n ",
210
+ stories: [{
211
+ id: "ArrowBasic",
212
+ name: {
213
+ en: "Basic",
214
+ ru: "Базовые"
215
+ },
216
+ setup: "\n const elementBasic = ref()\n const elementTarget = ref()\n const elementArray = ref()\n\n const x = ref('0px')\n const y = ref('0px')\n\n const onClick = (event: PointerEvent) => {\n if (elementBasic.value) {\n const rect = elementBasic.value.getBoundingClientRect()\n let offsetX = 0\n let offsetY = 0\n\n if (elementTarget.value) {\n const targetRect = elementTarget.value.getBoundingClientRect()\n offsetX = targetRect.width / 2\n offsetY = targetRect.height / 2\n }\n\n x.value = (event.clientX - rect.left - offsetX) + 'px'\n y.value = (event.clientY - rect.top - offsetY) + 'px'\n\n requestAnimationFrame(() => elementArray.value?.update())\n }\n }\n\n return {\n elementBasic,\n elementTarget,\n elementArray,\n x,\n y,\n onClick\n }\n ",
217
+ template: "\n <div\n class=\"wiki-storybook-item wiki-storybook-item--rectangle wiki-storybook-item--center\"\n style=\"cursor: crosshair;\"\n @click=\"onClick\"\n >\n <div>\n <div\n style=\"\n opacity: 0.5;\n font-size: 14px;\n margin-bottom: 8px;\n text-align: center;\n \"\n >\n Click to move target\n </div>\n <div\n ref=\"elementBasic\"\n style=\"\n position: relative;\n margin-bottom: 96px;\n margin-left: 32px;\n z-index: 32;\n \"\n >\n <div\n ref=\"elementTarget\"\n id=\"id-arrow-target-2\"\n style=\"\n position: absolute;\n padding: 8px;\n width: min-content;\n border-radius: 8px;\n background-color: oklch(90.2% 0.063 306.703);\n text-wrap: nowrap;\n pointer-events: none;\n \"\n :style=\"{left: x, top: y}\"\n >\n Target Element Example\n </div>\n </div>\n <div\n style=\"\n position: relative;\n width: 256px;\n height: 128px;\n border-radius: 16px;\n background-color: oklch(93.2% 0.032 255.585);\n border: 2px solid oklch(80.9% 0.105 251.813);\n box-shadow: 0 0 8px oklch(0.281 0.092 268.132 / 0.32);\n \"\n >\n <DesignComponent\n ref=\"elementArray\"\n position=\"auto\"\n element-target=\"#id-arrow-target-2\"\n />\n </div>\n </div>\n </div>\n "
218
+ }],
219
+ documentation: { body: "\n<StorybookDescriptions componentName={'Arrow'} type={'arrow'}/>\n<Canvas of={Component.ArrowBasic}/>\n" },
220
+ ai: {
221
+ render: "\n<div :class=\"classDemo.item\" style=\"position: relative; width: 48px; height: 48px; background-color: oklch(93.2% 0.032 255.585);\">\n <Arrow position=\"top\" v-bind=\"args\"/>\n</div>\n ",
222
+ description: "\nFunctional directional indicator (pointer) designed to connect floating containers like tooltips, popovers, or menus with their target elements. Automatically calculates positioning and orientation to create a seamless speech-bubble or callout effect.\nFeatures smart auto-positioning logic, support for inverse directions, and automated style inheritance. It inherits background and border properties from its parent container (Window or custom wrapper) to ensure visual consistency without manual configuration.\nIdeal for enhanced spatial context in complex UIs. Use within floating components to clearly indicate the source of a message or action. Controlled via position and elementTarget props, with an exposed update method for manual synchronization.\n "
223
+ }
224
+ },
225
+ {
226
+ name: "Badge",
227
+ description: {
228
+ en: "Small visual indicator for displaying status, count, or notifications on interface elements",
229
+ ru: "Небольшой визуальный индикатор для отображения статуса, количества или уведомлений на элементах интерфейса"
230
+ },
231
+ possibilities: {
232
+ en: [
233
+ "multiple color variants for different status types",
234
+ "content customization with text or numbers",
235
+ "positioning relative to parent elements",
236
+ "maximum value display with overflow handling",
237
+ "visibility control and animation support"
238
+ ],
239
+ ru: [
240
+ "множественные цветовые варианты для разных типов статуса",
241
+ "настройка содержимого с текстом или числами",
242
+ "позиционирование относительно родительских элементов",
243
+ "отображение максимального значения с обработкой переполнения",
244
+ "управление видимостью и поддержка анимации"
245
+ ]
246
+ },
247
+ import: [],
248
+ render: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--compact wiki-storybook-item--squared--md wiki-storybook-item--overflowVisible\">\n <DesignComponent v-bind=\"args\"/>\n </div>\n </div>\n ",
249
+ stories: [
250
+ {
251
+ id: "BadgeBasic",
252
+ name: {
253
+ en: "Basic",
254
+ ru: "Базовые"
255
+ },
256
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent overlap=\"static\">Badge</DesignComponent>\n <DesignComponent overlap=\"static\" icon=\"home\">Badge</DesignComponent>\n <DesignComponent overlap=\"static\">99</DesignComponent>\n <DesignComponent overlap=\"static\" label=\"999\" label-max=\"99\"/>\n </div>\n "
257
+ },
258
+ {
259
+ id: "BadgeDot",
260
+ name: {
261
+ en: "Dot",
262
+ ru: "Точечные (dot)"
263
+ },
264
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent dot overlap=\"static\"/>\n </div>\n "
265
+ },
266
+ {
267
+ id: "BadgePrimary",
268
+ name: {
269
+ en: "Primary",
270
+ ru: "Основные (primary)"
271
+ },
272
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent primary overlap=\"static\" icon=\"home\"/>\n <DesignComponent primary overlap=\"static\">Badge</DesignComponent>\n </div>\n ",
273
+ propsName: "primary"
274
+ },
275
+ {
276
+ id: "BadgeSecondary",
277
+ name: {
278
+ en: "Secondary",
279
+ ru: "Второстепенные (secondary)"
280
+ },
281
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent secondary overlap=\"static\" icon=\"home\"/>\n <DesignComponent secondary overlap=\"static\">Badge</DesignComponent>\n </div>\n ",
282
+ propsName: "secondary"
283
+ },
284
+ {
285
+ id: "BadgeOutline",
286
+ name: {
287
+ en: "Outline",
288
+ ru: "Контурные (outline)"
289
+ },
290
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent outline overlap=\"static\" icon=\"home\"/>\n <DesignComponent outline overlap=\"static\">Badge</DesignComponent>\n </div>\n ",
291
+ propsName: "outline"
292
+ }
293
+ ],
294
+ documentation: {
295
+ body: "\n<StorybookDescriptions componentName={'Badge'} type={'badge'}/>\n<Canvas of={Component.BadgeBasic}/>\n\n<StorybookDescriptions componentName={'Badge'} type={'dot'}/>\n<Canvas of={Component.BadgeDot}/>\n\n<template prop=\"primary\">\n<StorybookDescriptions componentName={'Badge'} type={'primary'}/>\n<Canvas of={Component.BadgePrimary}/>\n</template>\n\n<template prop=\"secondary\">\n<StorybookDescriptions componentName={'Badge'} type={'secondary'}/>\n<Canvas of={Component.BadgeSecondary}/>\n</template>\n\n<template prop=\"outline\">\n<StorybookDescriptions componentName={'Badge'} type={'outline'}/>\n<Canvas of={Component.BadgeOutline}/>\n</template>\n\n<StorybookDescriptions componentName={'Value'} type={'labelNumber'}/>\n ",
296
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n "
297
+ },
298
+ ai: {
299
+ render: "\n<div :class=\"classDemo.item\" style=\"min-width: 48px; min-height: 48px;\">\n <Badge overlap=\"static\" v-bind=\"args\"/>\n</div>\n ",
300
+ description: "\nSmall visual indicator used to display status, counts, notifications, or short labels (tags). Typically positioned over the corner of another element (like an icon or avatar) or used inline.\nFeatures numeric handling with label-max cap (e.g., \"99+\"), dot-only mode for status indication, and support for icons. Includes flexible positioning (overlap: rectangular or circular) and various color variants.\nControlled primarily through the label, icon, and dot props. Use for unread counts, online status indicators, or marking items as \"New\" or \"Sale\" in e-commerce contexts.\n "
301
+ }
302
+ },
303
+ {
304
+ name: "Bars",
305
+ description: {
306
+ en: "A versatile bar component for headers, toolbars, or action bars, displaying titles, descriptions, and interactive buttons.",
307
+ ru: "Универсальный компонент-панель для заголовков, панелей инструментов или панелей действий, отображающий заголовки, описания и интерактивные кнопки."
308
+ },
309
+ possibilities: {
310
+ en: [
311
+ "Displays a primary label and a secondary description.",
312
+ "Includes an optional back button for navigation.",
313
+ "Supports a primary set of interactive buttons.",
314
+ "Features an \"action mode\" with a separate set of buttons, label, and description.",
315
+ "Allows full customization of button appearance and behavior."
316
+ ],
317
+ ru: [
318
+ "Отображает основной заголовок и дополнительное описание.",
319
+ "Включает опциональную кнопку \"назад\" для навигации.",
320
+ "Поддерживает основной набор интерактивных кнопок.",
321
+ "Имеет \"режим действия\" с отдельным набором кнопок, заголовком и описанием.",
322
+ "Позволяет полностью настраивать внешний вид и поведение кнопок."
323
+ ]
324
+ },
325
+ import: ["import { ref } from 'vue'"],
326
+ stories: [
327
+ {
328
+ id: "BarsBasic",
329
+ name: {
330
+ en: "Basic",
331
+ ru: "Базовые"
332
+ },
333
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent\n label=\"Page Title\"\n description=\"A concise description for this page\"\n :bars=\"[\n { icon: 'search' },\n { icon: 'refresh' },\n { icon: 'more_vert' }\n ]\"\n />\n\n <DesignComponent\n action\n action-label=\"2 selected\"\n action-description=\"Choose an action to apply\"\n :action-bars=\"[\n { icon: 'share' },\n { icon: 'edit' },\n { icon: 'delete' }\n ]\"\n />\n </div>\n "
334
+ },
335
+ {
336
+ id: "BarsVModel",
337
+ name: {
338
+ en: "Two-way binding (v-model)",
339
+ ru: "Двусторонняя привязка (v-model)"
340
+ },
341
+ setup: "\n return {\n isAction: ref(false)\n }\n ",
342
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"isAction = !isAction\">Toggle action ({{ isAction ? 'on' : 'off' }})</button>\n </div>\n <DesignComponent\n v-model:action=\"isAction\"\n label=\"Page Title\"\n description=\"A concise description for this example\"\n :bars=\"[\n { icon: 'search' },\n { icon: 'refresh' },\n { icon: 'more_vert' }\n ]\"\n action-label=\"2 selected\"\n action-description=\"Choose an action to apply\"\n :action-bars=\"[\n { icon: 'share' },\n { icon: 'edit' },\n { icon: 'delete' }\n ]\"\n style=\"margin-top: 8px;\"\n />\n </div>\n "
343
+ },
344
+ {
345
+ id: "BarsSkeleton",
346
+ name: {
347
+ en: "Skeleton loading",
348
+ ru: "Загрузка скелетона"
349
+ },
350
+ components: ["Skeleton"],
351
+ template: "\n <DesignSkeleton :active=\"true\">\n <DesignComponent\n :isSkeleton=\"true\"\n label=\"Page Title\"\n description=\"A concise description for this header\"\n :bars=\"[\n { icon: 'search' },\n { icon: 'refresh' },\n { icon: 'more_vert' }\n ]\"\n />\n </DesignSkeleton>\n "
352
+ },
353
+ {
354
+ id: "BarsSlots",
355
+ name: {
356
+ en: "Slots usage",
357
+ ru: "Использование слотов"
358
+ },
359
+ setup: "\n return {\n isAction: ref(false)\n }\n ",
360
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"isAction = !isAction\">Toggle action ({{ isAction ? 'on' : 'off' }})</button>\n </div>\n <DesignComponent v-model:action=\"isAction\">\n <template #default>Custom Label slot</template>\n <template #description>Custom Description slot</template>\n <template #bars>Custom Bars Slot</template>\n <template #actionBars>Custom ActionBars Slot</template>\n </DesignComponent>\n </div>\n "
361
+ }
362
+ ],
363
+ documentation: {
364
+ body: "\n<StorybookDescriptions componentName={'Bars'} type={'bars'}/>\n<StorybookDescriptions componentName={'Bars'} type={'action'}/>\n<Canvas of={Component.BarsBasic}/>\n<StorybookDescriptions componentName={'Bars'} type={'v-model'}/>\n<Canvas of={Component.BarsVModel}/>\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.BarsSkeleton}/>\n ",
365
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n ",
366
+ slots: "\n<Canvas of={Component.BarsSlots}/>\n<StorybookDescriptions componentName={'Bars'} type={'slots'}/>\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n "
367
+ },
368
+ ai: { description: "\nStructural header or toolbar component for pages, cards, and windows. Provides a consistent layout for titles, descriptions, and interactive action buttons.\nFeatures a built-in back navigation button, primary action button list (bars), and a specialized \"action mode\" for contextual states (e.g., selection). Supports skeleton loading and full button customization.\nControlled via label/description props and action boolean for state switching. Use for top-level page headers, modal toolbars, or dynamic action bars that appear after item selection.\n " }
369
+ },
370
+ {
371
+ name: "Block",
372
+ description: {
373
+ en: "A versatile structural component that serves as a container with support for labels, descriptions, captions, icons, and headlines",
374
+ ru: "Универсальный структурный компонент, служащий контейнером с поддержкой меток, описаний, подписей, иконок и заголовков"
375
+ },
376
+ possibilities: {
377
+ en: [
378
+ "displaying a headline, label, description, and caption",
379
+ "support for icons",
380
+ "customizable HTML tag",
381
+ "flexible layout for content organization"
382
+ ],
383
+ ru: [
384
+ "отображение заголовка, метки, описания и подписи",
385
+ "поддержка иконок",
386
+ "настраиваемый HTML-тег",
387
+ "гибкая компоновка для организации контента"
388
+ ]
389
+ },
390
+ import: [],
391
+ render: "\n <DesignComponent v-bind=\"args\">\n <p>\n The Block component serves as a fundamental building unit for constructing complex user interfaces.\n It provides a flexible container that can host various content elements such as labels, descriptions, and icons.\n </p>\n <p>\n With its versatile design, the Block component adapts seamlessly to different layout requirements.\n Whether you need a simple content wrapper or a detailed card with a headline and caption, this component handles it all.\n </p>\n <p>\n Developers can easily customize the appearance and behavior of the Block using properties and slots.\n This ensures that the component fits perfectly into any design system while maintaining consistency across the application.\n </p>\n </DesignComponent>\n ",
392
+ stories: [{
393
+ id: "BlockBasic",
394
+ name: {
395
+ en: "Basic",
396
+ ru: "Базовые"
397
+ },
398
+ template: "\n <DesignComponent\n headline=\"Account Settings\"\n label=\"Profile Information\"\n description=\"Manage your personal details and public profile presence.\"\n >\n <p>Welcome to your profile overview. Here you can update your name, bio, and contact information.</p>\n </DesignComponent>\n "
399
+ }, {
400
+ id: "BlockSlots",
401
+ name: {
402
+ en: "Slots usage",
403
+ ru: "Использование слотов"
404
+ },
405
+ template: "\n <DesignComponent>\n <template #default>Default slot</template>\n <template #headline>Headline slot</template>\n <template #label>Label slot</template>\n <template #description>Description slot</template>\n <template #caption>Caption slot</template>\n <template #trailing>Trailing slot</template>\n </DesignComponent>\n "
406
+ }],
407
+ documentation: {
408
+ body: "\n<StorybookDescriptions componentName={'Block'} type={'block'}/>\n<Canvas of={Component.BlockBasic}/>\n\n<StorybookDescriptions componentName={'Block'} type={'differences'}/>\n",
409
+ slots: "\n<Canvas of={Component.BlockSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n<StorybookDescriptions componentName={'Slot'} type={'headline'}/>\n<StorybookDescriptions componentName={'Slot'} type={'label'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n<StorybookDescriptions componentName={'Slot'} type={'caption'}/>\n<StorybookDescriptions componentName={'Slot'} type={'trailing'}/>\n",
410
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'labelId'}/>\n<StorybookDescriptions componentName={'Expose'} type={'descriptionId'}/>\n"
411
+ },
412
+ ai: {
413
+ render: "\n<div :class=\"classDemo.item\">\n <Block v-bind=\"args\">\n Main content goes here.\n </Block>\n</div>\n ",
414
+ description: "\nVersatile structural container for organizing content with a standardized layout. Automatically arranges headlines, icons, labels, captions, and body content within a unified block element.\nFeatures support for custom HTML tags (e.g., section, article) and flexible slot-based content organization. Includes a dedicated headline area for section titles and a trailing slot for actions.\nControlled primarily through content props (label, headline, description) or various slots (#default, #headline, #trailing). Use for card headers, complex list items, or clearly defined page sections.\n "
415
+ }
416
+ },
417
+ {
418
+ name: "Button",
419
+ description: {
420
+ en: "Interactive button component for user actions",
421
+ ru: "Интерактивный компонент кнопки для действий пользователя"
422
+ },
423
+ possibilities: {
424
+ en: [
425
+ "multiple visual variants for different use cases",
426
+ "different sizes from extra small to extra large",
427
+ "built-in accessibility support",
428
+ "focus, hover, and active states",
429
+ "disabled and loading states support",
430
+ "customizable styling through design tokens"
431
+ ],
432
+ ru: [
433
+ "множественные визуальные варианты для разных случаев использования",
434
+ "различные размеры от очень маленького до очень большого",
435
+ "встроенная поддержка доступности",
436
+ "состояния focus, hover и active",
437
+ "поддержка отключенного состояния и состояния загрузки",
438
+ "настраиваемая стилизация через токены дизайна"
439
+ ]
440
+ },
441
+ import: [],
442
+ stories: [
443
+ {
444
+ id: "ButtonBasic",
445
+ name: {
446
+ en: "Basic",
447
+ ru: "Базовые"
448
+ },
449
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent>Button</DesignComponent>\n <DesignComponent icon=\"home\">Button</DesignComponent>\n <DesignComponent icon-trailing=\"arrow_forward\">Button</DesignComponent>\n </div>\n "
450
+ },
451
+ {
452
+ id: "ButtonPrimary",
453
+ name: {
454
+ en: "Primary",
455
+ ru: "Основные (primary)"
456
+ },
457
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent primary>Button</DesignComponent>\n <DesignComponent primary icon=\"home\">Button</DesignComponent>\n <DesignComponent primary selected>Button</DesignComponent>\n <DesignComponent primary disabled>Button</DesignComponent>\n </div>\n ",
458
+ propsName: "primary"
459
+ },
460
+ {
461
+ id: "ButtonSecondary",
462
+ name: {
463
+ en: "Secondary",
464
+ ru: "Второстепенные (secondary)"
465
+ },
466
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent secondary>Button</DesignComponent>\n <DesignComponent secondary icon=\"home\">Button</DesignComponent>\n <DesignComponent secondary selected>Button</DesignComponent>\n <DesignComponent secondary disabled>Button</DesignComponent>\n </div>\n ",
467
+ propsName: "secondary"
468
+ },
469
+ {
470
+ id: "ButtonOutline",
471
+ name: {
472
+ en: "Outline",
473
+ ru: "Контурные (outline)"
474
+ },
475
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent outline>Button</DesignComponent>\n <DesignComponent outline icon=\"home\">Button</DesignComponent>\n <DesignComponent outline selected>Button</DesignComponent>\n <DesignComponent outline disabled>Button</DesignComponent>\n </div>\n ",
476
+ propsName: "outline"
477
+ },
478
+ {
479
+ id: "ButtonText",
480
+ name: {
481
+ en: "Text",
482
+ ru: "Текстовые (text)"
483
+ },
484
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent text>Button</DesignComponent>\n <DesignComponent text icon=\"home\">Button</DesignComponent>\n <DesignComponent text selected>Button</DesignComponent>\n <DesignComponent text disabled>Button</DesignComponent>\n </div>\n ",
485
+ propsName: "text"
486
+ },
487
+ {
488
+ id: "ButtonAdaptive",
489
+ name: {
490
+ en: "Adaptive",
491
+ ru: "Адаптивные"
492
+ },
493
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--sm wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Default</div>\n <DesignComponent icon=\"home\" label=\"Button\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--sm wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Adaptive</div>\n <DesignComponent adaptive=\"fullSm\" icon=\"home\" label=\"Button\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--sm wiki-storybook-item--center wiki-storybook-container\">\n <div class=\"wiki-storybook-item__label\">Container</div>\n <DesignComponent container=\"fullSm\" icon=\"home\" label=\"Button\"/>\n </div>\n </div>\n "
494
+ },
495
+ {
496
+ id: "ButtonSkeleton",
497
+ name: {
498
+ en: "Skeleton",
499
+ ru: "Скелетон"
500
+ },
501
+ components: ["Skeleton"],
502
+ template: "\n <DesignSkeleton :active=\"true\">\n <DesignComponent isSkeleton>Button</DesignComponent>\n </DesignSkeleton>\n "
503
+ }
504
+ ],
505
+ documentation: {
506
+ body: "\n<StorybookDescriptions componentName={'Button'} type={'button'}/>\n<Canvas of={Component.ButtonBasic}/>\n\n<template prop=\"primary\">\n<StorybookDescriptions componentName={'Button'} type={'primary'}/>\n<Canvas of={Component.ButtonPrimary}/>\n</template>\n\n<template prop=\"secondary\">\n<StorybookDescriptions componentName={'Button'} type={'secondary'}/>\n<Canvas of={Component.ButtonSecondary}/>\n</template>\n\n<template prop=\"outline\">\n<StorybookDescriptions componentName={'Button'} type={'outline'}/>\n<Canvas of={Component.ButtonOutline}/>\n</template>\n\n<template prop=\"text\">\n<StorybookDescriptions componentName={'Button'} type={'text'}/>\n<Canvas of={Component.ButtonText}/>\n</template>\n\n<StorybookDescriptions componentName={'Value'} type={'value'}/>\n\n<StorybookDescriptions componentName={'Style'} type={'adaptive'}/>\n<Canvas of={Component.ButtonAdaptive}/>\n\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.ButtonSkeleton}/>\n ",
507
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n ",
508
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'value'}/>\n<StorybookDescriptions componentName={'Expose'} type={'detail'}/>\n ",
509
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n "
510
+ },
511
+ ai: { description: "\nFundamental interactive component for user actions, navigation, and form submission. Supports various visual styles (primary, secondary, outline, text), states, and content configurations.\nFeatures built-in support for icons (Material Symbols), loading spinners, and disabled/selected states. Includes native-like navigation via \"to\" (Vue Router) or \"href\" (external) props and supports skeleton loading.\nHighly customizable through design tokens and adaptive layout options. Controlled primarily via click events and various styling props. Use for call-to-actions, navigation links, or icon-only toggle buttons.\n " }
512
+ },
513
+ {
514
+ name: "Cell",
515
+ description: {
516
+ en: "Versatile container component for displaying structured content with labels, descriptions, and actions",
517
+ ru: "Универсальный контейнерный компонент для отображения структурированного контента с метками, описаниями и действиями"
518
+ },
519
+ possibilities: {
520
+ en: [
521
+ "flexible content structure with label, description, and caption",
522
+ "interactive states including focus, selected, and disabled",
523
+ "built-in icon and trailing icon support",
524
+ "progress indicator integration",
525
+ "divider customization options",
526
+ "dynamic behavior with hover interactions",
527
+ "skeleton loading state support",
528
+ "click event handling with custom data"
529
+ ],
530
+ ru: [
531
+ "гибкая структура контента с меткой, описанием и подписью",
532
+ "интерактивные состояния включая focus, selected и disabled",
533
+ "встроенная поддержка иконок и завершающих иконок",
534
+ "интеграция индикатора прогресса",
535
+ "возможности настройки разделителей",
536
+ "динамическое поведение с взаимодействием при наведении",
537
+ "поддержка состояния загрузки скелетона",
538
+ "обработка событий клика с пользовательскими данными"
539
+ ]
540
+ },
541
+ render: "\n <DesignComponent v-bind=\"args\"/>\n <DesignComponent v-bind=\"args\"/>\n <DesignComponent v-bind=\"args\"/>\n ",
542
+ import: [],
543
+ stories: [{
544
+ id: "CellSkeleton",
545
+ name: {
546
+ en: "Skeleton loading",
547
+ ru: "Загрузка скелетона"
548
+ },
549
+ components: ["Skeleton"],
550
+ template: "\n <DesignSkeleton :active=\"true\">\n <DesignComponent\n :isSkeleton=\"true\"\n caption=\"Caption\"\n description=\"Short desc.\"\n label=\"A\"\n />\n <DesignComponent\n :isSkeleton=\"true\"\n caption=\"Caption\"\n description=\"A bit longer description for the cell component.\"\n label=\"Label Example\"\n />\n <DesignComponent\n :isSkeleton=\"true\"\n caption=\"Caption\"\n description=\"This is a much longer description to demonstrate how the skeleton adapts to different content lengths in the cell.\"\n label=\"Very Long Label Example for Skeleton\"\n />\n </DesignSkeleton>\n "
551
+ }, {
552
+ id: "CellSlots",
553
+ name: {
554
+ en: "Slots usage",
555
+ ru: "Использование слотов"
556
+ },
557
+ template: "\n <DesignComponent icon=\"home\">\n <template #default>Default slot</template>\n <template #description>Description slot</template>\n <template #caption>Caption slot</template>\n <template #trailing>Trailing slot</template>\n <template #body>Body slot</template>\n </DesignComponent>\n "
558
+ }],
559
+ documentation: {
560
+ body: "\n<StorybookDescriptions componentName={'Cell'} type={'cell'}/>\n\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.CellSkeleton}/>\n",
561
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n ",
562
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'value'}/>\n<StorybookDescriptions componentName={'Expose'} type={'detail'}/>\n<StorybookDescriptions componentName={'Expose'} type={'labelId'}/>\n<StorybookDescriptions componentName={'Expose'} type={'descriptionId'}/>\n ",
563
+ slots: "\n<Canvas of={Component.CellSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n<StorybookDescriptions componentName={'Slot'} type={'caption'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n<StorybookDescriptions componentName={'Cell'} type={'slots'}/>\n"
564
+ },
565
+ ai: { description: "\nUniversal list item component for building structured interfaces like menus, settings, and data lists. Provides a standardized row layout with dedicated areas for icons, text, and actions.\nFeatures a composable structure with label, description, and caption support. Includes interactive states (hover, focus, selected, loading), built-in Ripple effect, and skeleton loading integration.\nHighly flexible via slots (#default, #trailing, #body) and controlled through content props and navigation attributes (to/href). Use for clickable rows, menu items, or complex data entities in lists.\n " }
566
+ },
567
+ {
568
+ name: "Checkbox",
569
+ description: {
570
+ en: "Interactive checkbox component for binary or indeterminate state selection",
571
+ ru: "Интерактивный компонент чекбокса для выбора бинарного или неопределённого состояния"
572
+ },
573
+ possibilities: {
574
+ en: [
575
+ "checked, unchecked, and indeterminate states",
576
+ "built-in validation support with custom messages",
577
+ "label and description text support",
578
+ "customizable icons for checked and indeterminate states",
579
+ "disabled and loading states",
580
+ "ripple effect on interaction",
581
+ "skeleton state for loading placeholders",
582
+ "adaptive layout options",
583
+ "form integration with name and value attributes"
584
+ ],
585
+ ru: [
586
+ "состояния: отмечен, не отмечен и неопределённое",
587
+ "встроенная поддержка валидации с пользовательскими сообщениями",
588
+ "поддержка текста метки и описания",
589
+ "настраиваемые иконки для состояний отмечен и неопределённое",
590
+ "состояния отключения и загрузки",
591
+ "эффект волны при взаимодействии",
592
+ "состояние скелетона для заполнителей загрузки",
593
+ "опции адаптивной разметки",
594
+ "интеграция с формами через атрибуты name и value"
595
+ ]
596
+ },
597
+ import: ["import { ref } from 'vue'"],
598
+ stories: [
599
+ {
600
+ id: "CheckboxVModel",
601
+ name: {
602
+ en: "Two-way binding (v-model)",
603
+ ru: "Двусторонняя привязка (v-model)"
604
+ },
605
+ setup: "\n return {\n checkboxValue: ref(false),\n indeterminateValue: ref(null)\n }\n ",
606
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"checkboxValue = !checkboxValue\">Check {{ checkboxValue }}</button>\n </div>\n <DesignComponent\n v-model=\"checkboxValue\"\n label=\"Checkbox with v-model\"\n />\n </div>\n "
607
+ },
608
+ {
609
+ id: "CheckboxSkeleton",
610
+ name: {
611
+ en: "Skeleton",
612
+ ru: "Скелетон"
613
+ },
614
+ components: ["Skeleton"],
615
+ template: "\n <DesignSkeleton :active=\"true\">\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent isSkeleton label=\"Loading checkbox\" />\n <DesignComponent isSkeleton label=\"Another loading checkbox\" />\n </div>\n </DesignSkeleton>\n "
616
+ },
617
+ {
618
+ id: "CheckboxSlots",
619
+ name: {
620
+ en: "Slots usage",
621
+ ru: "Использование слотов"
622
+ },
623
+ template: "\n <DesignComponent>\n <template #default>\n <strong>Custom label slot</strong>\n </template>\n <template #description>\n <em>Custom description slot</em>\n </template>\n </DesignComponent>\n "
624
+ }
625
+ ],
626
+ documentation: {
627
+ body: "\n<StorybookDescriptions componentName={'Checkbox'} type={'checkbox'}/>\n\n<StorybookDescriptions componentName={'Checkbox'} type={'value'}/>\n<StorybookDescriptions componentName={'Checkbox'} type={'indeterminate'}/>\n<StorybookDescriptions componentName={'Value'} type={'v-model'}/>\n<Canvas of={Component.CheckboxVModel}/>\n\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.CheckboxSkeleton}/>\n ",
628
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'input'}/>\n<StorybookDescriptions componentName={'Event'} type={'change'}/>\n ",
629
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'value'}/>\n<StorybookDescriptions componentName={'Expose'} type={'checkValidity'}/>\n<StorybookDescriptions componentName={'Expose'} type={'validationMessage'}/>\n ",
630
+ slots: "\n<Canvas of={Component.CheckboxSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'label'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n "
631
+ },
632
+ ai: { description: "\nForm control component for binary (yes/no) or indeterminate state selection. Allows users to toggle specific options or select multiple items from a list with visual feedback.\nFeatures support for primary label, secondary description, and custom icons for checked/indeterminate states. Includes built-in validation, loading indicators, and adaptive layout options.\nControlled via v-model or value prop and emits @input/@change events. Use for terms agreement, feature toggles, or parent-child coordinated selections (via indeterminate state).\n " }
633
+ },
634
+ {
635
+ name: "Chip",
636
+ description: {
637
+ en: "Compact element that represents an input, attribute, or action",
638
+ ru: "Компактный элемент, представляющий ввод, атрибут или действие"
639
+ },
640
+ possibilities: {
641
+ en: [
642
+ "multiple visual variants for different contexts",
643
+ "selectable state for user interaction",
644
+ "disabled state support",
645
+ "customizable styling through design tokens",
646
+ "icon support for enhanced visual representation",
647
+ "adaptive behavior for different screen sizes"
648
+ ],
649
+ ru: [
650
+ "множественные визуальные варианты для разных контекстов",
651
+ "выбираемое состояние для взаимодействия пользователя",
652
+ "поддержка отключенного состояния",
653
+ "настраиваемая стилизация через токены дизайна",
654
+ "поддержка иконок для улучшенного визуального представления",
655
+ "адаптивное поведение для разных размеров экрана"
656
+ ]
657
+ },
658
+ import: [],
659
+ stories: [
660
+ {
661
+ id: "ChipInput",
662
+ name: {
663
+ en: "Input",
664
+ ru: "Ввод (input)"
665
+ },
666
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent>Chip</DesignComponent>\n <DesignComponent input>Tag</DesignComponent>\n <DesignComponent input icon=\"person\">Contact</DesignComponent>\n <DesignComponent input selected icon=\"tag\">Keyword</DesignComponent>\n </div>\n ",
667
+ propsName: "input"
668
+ },
669
+ {
670
+ id: "ChipAssistive",
671
+ name: {
672
+ en: "Assistive",
673
+ ru: "Вспомогательные (assistive)"
674
+ },
675
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent>Chip</DesignComponent>\n <DesignComponent assistive>Chip</DesignComponent>\n <DesignComponent assistive icon=\"lightbulb\">Suggestion</DesignComponent>\n <DesignComponent assistive selected icon=\"check\">Recommended</DesignComponent>\n </div>\n ",
676
+ propsName: "assistive"
677
+ },
678
+ {
679
+ id: "ChipAdaptive",
680
+ name: {
681
+ en: "Adaptive",
682
+ ru: "Адаптивные"
683
+ },
684
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--sm wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Default</div>\n <DesignComponent icon=\"star\" label=\"Chip\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--sm wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Adaptive</div>\n <DesignComponent adaptive=\"fullSm\" icon=\"star\" label=\"Chip\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--sm wiki-storybook-item--center wiki-storybook-container\">\n <div class=\"wiki-storybook-item__label\">Container</div>\n <DesignComponent container=\"fullSm\" icon=\"star\" label=\"Chip\"/>\n </div>\n </div>\n ",
685
+ propsName: "adaptive"
686
+ },
687
+ {
688
+ id: "ChipSkeleton",
689
+ name: {
690
+ en: "Skeleton",
691
+ ru: "Скелетон"
692
+ },
693
+ components: ["Skeleton"],
694
+ template: "\n <DesignSkeleton :active=\"true\">\n <DesignComponent isSkeleton>Chip</DesignComponent>\n </DesignSkeleton>\n "
695
+ }
696
+ ],
697
+ documentation: {
698
+ body: "\n<StorybookDescriptions componentName={'Chip'} type={'chip'}/>\n\n<template prop=\"input\">\n<StorybookDescriptions componentName={'Chip'} type={'input'}/>\n<Canvas of={Component.ChipInput}/>\n</template>\n\n<template prop=\"assistive\">\n<StorybookDescriptions componentName={'Chip'} type={'assistive'}/>\n<Canvas of={Component.ChipAssistive}/>\n</template>\n\n<StorybookDescriptions componentName={'Value'} type={'value'}/>\n\n<StorybookDescriptions componentName={'Style'} type={'adaptive'}/>\n<Canvas of={Component.ChipAdaptive}/>\n\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.ChipSkeleton}/>\n ",
699
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n ",
700
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'value'}/>\n<StorybookDescriptions componentName={'Expose'} type={'detail'}/>\n ",
701
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n "
702
+ },
703
+ ai: { description: "\nCompact interactive element representing an input, attribute, or action. Used for entering information, making selections, filtering content, or triggering immediate actions in a space-efficient way.\nFeatures multiple functional variants (Action, Input, Assistive, Filter) with support for leading icons and selection states. Includes built-in support for disabled/selected states and adaptive layout options.\nControlled via value/label props and emits @click events with detailed data. Use for filter tags, choice groups (like radio buttons), or representing entities like contacts in input fields.\n " }
704
+ },
705
+ {
706
+ name: "ChipGroup",
707
+ description: {
708
+ en: "Component for managing a group of interactive chips with support for selection and data binding",
709
+ ru: "Компонент для управления группой интерактивных чипов с поддержкой выбора и привязки данных"
710
+ },
711
+ possibilities: {
712
+ en: [
713
+ "rendering a list of chips from a data array",
714
+ "managing selection state (single or multiple)",
715
+ "customizing the appearance of all chips in the group via chipAttrs",
716
+ "handling click events and value updates",
717
+ "controlling icon visibility based on selection"
718
+ ],
719
+ ru: [
720
+ "рендеринг списка чипов из массива данных",
721
+ "управление состоянием выбора (одиночный или множественный)",
722
+ "настройка внешнего вида всех чипов в группе через chipAttrs",
723
+ "обработка событий клика и обновлений значений",
724
+ "управление видимостью иконки в зависимости от выбора"
725
+ ]
726
+ },
727
+ import: ["import { ref } from 'vue'"],
728
+ stories: [{
729
+ id: "ChipGroupSelection",
730
+ name: {
731
+ en: "Selection States",
732
+ ru: "Состояния выбора"
733
+ },
734
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent :list=\"['Option 1', 'Option 2', 'Option 3']\" selected=\"2\"/>\n <DesignComponent :list=\"['Option 1', 'Option 2', 'Option 3', 'Option 4']\" :selected=\"['2', '3']\"/>\n <DesignComponent\n :list=\"[\n { label: 'Option 1', icon: 'check', value: 'option1' },\n { label: 'Option 2', icon: 'check', value: 'option2' },\n { label: 'Option 3', icon: 'check', value: 'option3' }\n ]\"\n :selected=\"['option2']\"\n :icon-when-selected=\"true\"\n />\n </div>\n "
735
+ }, {
736
+ id: "ChipGroupVModel",
737
+ name: {
738
+ en: "Two-way binding (v-model)",
739
+ ru: "Двусторонняя привязка (v-model)"
740
+ },
741
+ setup: "\n return {\n multipleSelected: ref(['option1', 'option3'])\n }\n ",
742
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <span>Current value: {{ multipleSelected }}</span>\n <button class=\"wiki-storybook-button\" @click=\"multipleSelected = ['option1', 'option2']\">Select 1,2</button>\n <button class=\"wiki-storybook-button\" @click=\"multipleSelected = ['option1', 'option2', 'option3']\">Add 3</button>\n <button class=\"wiki-storybook-button wiki-storybook-button--warning\" @click=\"multipleSelected = []\">Clear all</button>\n </div>\n <DesignComponent\n v-model:selected=\"multipleSelected\"\n :list=\"[\n { label: 'Option 1', value: 'option1', icon: 'check' },\n { label: 'Option 2', value: 'option2', icon: 'check' },\n { label: 'Option 3', value: 'option3', icon: 'check' }\n ]\"\n :readonly=\"false\"\n :icon-when-selected=\"true\"\n />\n </div>\n "
743
+ }],
744
+ documentation: {
745
+ body: "\n <StorybookDescriptions componentName={'ChipGroup'} type={'chipGroup'}/>\n\n <StorybookDescriptions componentName={'ChipGroup'} type={'selected'}/>\n <Canvas of={Component.ChipGroupSelection}/>\n\n <StorybookDescriptions componentName={'Value'} type={'v-model:selected'}/>\n <Canvas of={Component.ChipGroupVModel}/>\n ",
746
+ events: "\n <StorybookDescriptions componentName={'Event'} type={'click'}/>\n ",
747
+ slots: "\n <StorybookDescriptions componentName={'Slot'} type={'default'}/>\n "
748
+ },
749
+ ai: { description: "\nWrapper component for managing collections of Chip elements based on an array of data. Streamlines the creation of filter sets, choice groups, and tag lists by automating iteration and selection logic.\nFeatures support for single and multiple selection modes, shared chip attributes (via chipAttrs), and icon visibility control. Includes built-in data binding for selected values and @click event propagation.\nControlled via the list prop for data and v-model:selected for state. Use for dynamic filtering interfaces, selecting multiple categories, or building interactive tag lists from API data.\n " }
750
+ },
751
+ {
752
+ name: "Dialog",
753
+ description: {
754
+ en: "Modal dialog component for displaying alerts, confirmations, and informational messages with icon and action buttons",
755
+ ru: "Модальный диалоговый компонент для отображения предупреждений, подтверждений и информационных сообщений с иконкой и кнопками действий"
756
+ },
757
+ possibilities: {
758
+ en: [
759
+ "modal dialog with centered positioning and backdrop",
760
+ "icon support with predefined success and error states",
761
+ "customizable title, description, and content areas",
762
+ "action buttons with OK and Close presets",
763
+ "image positioning (top or left alignment)",
764
+ "integration with Window, Bars, Actions, Icon components",
765
+ "close on ESC key and backdrop click",
766
+ "programmatic control via v-model:open",
767
+ "automatic icon switching based on success/error states",
768
+ "flexible content layout with information block",
769
+ "customizable footer with action buttons",
770
+ "keyboard accessibility and focus management",
771
+ "responsive design with mobile optimization",
772
+ "support for custom button configurations"
773
+ ],
774
+ ru: [
775
+ "модальный диалог с центрированием и подложкой",
776
+ "поддержка иконок с предустановленными состояниями успеха и ошибки",
777
+ "настраиваемые области заголовка, описания и контента",
778
+ "кнопки действий с пресетами OK и Закрыть",
779
+ "позиционирование изображения (сверху или слева)",
780
+ "интеграция с компонентами Window, Bars, Actions, Icon",
781
+ "закрытие по ESC и клику на подложку",
782
+ "программное управление через v-model:open",
783
+ "автоматическое переключение иконки на основе состояний успеха/ошибки",
784
+ "гибкая компоновка контента с информационным блоком",
785
+ "настраиваемый футер с кнопками действий",
786
+ "доступность с клавиатуры и управление фокусом",
787
+ "адаптивный дизайн с оптимизацией для мобильных",
788
+ "поддержка пользовательских конфигураций кнопок"
789
+ ]
790
+ },
791
+ import: ["import { ref } from 'vue'"],
792
+ render: "\n <DesignComponent v-bind=\"args\">\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Open Dialog</button>\n </template>\n </DesignComponent>\n ",
793
+ stories: [
794
+ {
795
+ id: "DialogStates",
796
+ name: {
797
+ en: "Success and error states",
798
+ ru: "Состояния успеха и ошибки"
799
+ },
800
+ setup: "\n return {\n openSuccess: ref(false),\n openError: ref(false)\n }\n ",
801
+ template: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent\n :success=\"true\"\n label=\"Operation Successful\"\n description=\"Your changes have been saved successfully.\"\n >\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Success Dialog</button>\n </template>\n </DesignComponent>\n\n <DesignComponent\n :error=\"true\"\n label=\"Operation Failed\"\n description=\"An error occurred while processing your request. Please try again.\"\n >\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Error Dialog</button>\n </template>\n </DesignComponent>\n </div>\n "
802
+ },
803
+ {
804
+ id: "DialogVModel",
805
+ name: {
806
+ en: "Two-way binding (v-model)",
807
+ ru: "Двусторонняя привязка (v-model)"
808
+ },
809
+ setup: "\n return {\n open: ref(false)\n }\n ",
810
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"open = true\">Open via v-model ({{ open }})</button>\n </div>\n\n <DesignComponent\n v-model:open=\"open\"\n label=\"Confirmation\"\n description=\"Are you sure you want to proceed with this action?\"\n />\n </div>\n "
811
+ },
812
+ {
813
+ id: "DialogAllSlots",
814
+ name: {
815
+ en: "All slots demonstration",
816
+ ru: "Демонстрация всех слотов"
817
+ },
818
+ template: "\n <DesignComponent>\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Open Dialog with All Slots</button>\n </template>\n\n <template #title>\n Title Slot\n </template>\n\n <template #label>\n <strong>Label Slot</strong>\n </template>\n\n <template #description>\n <em>Description Slot</em>\n </template>\n\n <template #default>\n Default Slot\n </template>\n\n <template #footer=\"{classesWindow}\">\n Footer Slot\n </template>\n </DesignComponent>\n "
819
+ }
820
+ ],
821
+ documentation: {
822
+ body: "\n<StorybookDescriptions componentName={'Dialog'} type={'dialog'}/>\n\n<StorybookDescriptions componentName={'Dialog'} type={'states'}/>\n<Canvas of={Component.DialogStates}/>\n\n<StorybookDescriptions componentName={'Dialog'} type={'buttons'}/>\n\n<StorybookDescriptions componentName={'Window'} type={'v-model'}/>\n<Canvas of={Component.DialogVModel}/>\n\n<StorybookDescriptions componentName={'Modal'} type={'differences'}/>\n ",
823
+ events: "\n<StorybookDescriptions componentName={'Dialog'} type={'events'}/>\n<StorybookDescriptions componentName={'Dialog'} type={'event.dialog'}/>\n<StorybookDescriptions componentName={'Window'} type={'event.window'}/>\n<StorybookDescriptions componentName={'Event'} type={'bars'}/>\n<StorybookDescriptions componentName={'Event'} type={'actions'}/>\n ",
824
+ expose: "\n<StorybookDescriptions componentName={'Window'} type={'expose'}/>\n ",
825
+ slots: "\n<Canvas of={Component.DialogAllSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'label'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n<StorybookDescriptions componentName={'Window'} type={'slots'}/>\n "
826
+ },
827
+ ai: {
828
+ render: "\n<div :class=\"classDemo.item\">\n <Dialog embedded open label=\"Dialog Title\" description=\"This is a description text.\" v-bind=\"args\"/>\n</div>\n ",
829
+ description: "\nSpecialized modal component for standardized user interactions such as alerts, confirmations, and status messages. Extends the Modal component with a predefined layout for icons, titles, and action buttons.\nFeatures built-in success/error states with automatic icon switching and content styling. Supports flexible positioning of images (top/left) and integrates with Window, Bars, and Actions for a consistent footer.\nControlled via v-model:open and various content props (label, description). Use for critical operations requiring user confirmation, operation success/fail alerts, or informative system messages.\n "
830
+ }
831
+ },
832
+ {
833
+ name: "Dummy",
834
+ description: {
835
+ en: "A placeholder component used for structural presentation or testing",
836
+ ru: "Компонент-заглушка, используемый для структурного представления или тестирования"
837
+ },
838
+ possibilities: {
839
+ en: ["multiple sizes from extra small to 5xl", "various color palettes"],
840
+ ru: ["множественные размеры от очень маленького до 5xl", "различные цветовые палитры"]
841
+ },
842
+ import: [],
843
+ stories: [],
844
+ documentation: {
845
+ body: "\n<StorybookDescriptions componentName={'Dummy'} type={'dummy'}/>\n ",
846
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n "
847
+ },
848
+ ai: {
849
+ description: "\nPlaceholder component used for structural presentation, testing, or laying out interfaces early in development. Provides a simple geometric shape to represent where a future component will be placed.\nFeatures configurable sizes (from 'xs' to '5xl') and customizable color palettes. Acts as a lightweight visual anchor without complex logic or dependencies.\nControlled via size and palette props. Use during prototyping to define layout structures before final components are implemented or for testing responsive container behavior.\n ",
850
+ hide: !0
851
+ }
852
+ },
853
+ {
854
+ name: "Field",
855
+ description: {
856
+ en: "Base container for form controls that composes label, messages, counter, icons and progress",
857
+ ru: "Базовый контейнер для полей ввода, который собирает метку, сообщения, счётчик, иконки и прогресс"
858
+ },
859
+ possibilities: {
860
+ en: [
861
+ "composes FieldLabel, FieldMessage, FieldCounter, Progress and icon includes",
862
+ "handles states: focus, disabled, readonly, selected, block",
863
+ "supports prefix, suffix and caption slots",
864
+ "validation highlighting based on validationMessage and forceShowMessage",
865
+ "optional cancel and navigation (arrow) icons with visibility flags",
866
+ "counter position control with counterTop",
867
+ "integrated helpers for sizing and icons (FieldSize, FieldIcons)"
868
+ ],
869
+ ru: [
870
+ "композит из FieldLabel, FieldMessage, FieldCounter, Progress и включений иконок",
871
+ "обрабатывает состояния: focus, disabled, readonly, selected, block",
872
+ "поддерживает слоты prefix, suffix и caption",
873
+ "подсветка валидации на основе validationMessage и forceShowMessage",
874
+ "дополнительные иконки отмены и навигации (стрелки) с флагами видимости",
875
+ "управление позицией счётчика через counterTop",
876
+ "встроенные помощники для размеров и иконок (FieldSize, FieldIcons)"
877
+ ]
878
+ },
879
+ import: [],
880
+ render: "\n <DesignComponent v-bind=\"args\">\n <template v-slot:default=\"{binds}\">\n <input :value=\"args.value\" readonly v-bind=\"binds\"/>\n </template>\n </DesignComponent>\n ",
881
+ stories: [
882
+ {
883
+ id: "FieldWidth",
884
+ name: {
885
+ en: "Width",
886
+ ru: "Ширина"
887
+ },
888
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent label=\"auto\">\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" value=\"\" readonly/>\n </template>\n </DesignComponent>\n <DesignComponent width=\"320px\" label=\"320px\">\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" value=\"\" readonly/>\n </template>\n </DesignComponent>\n <DesignComponent width=\"50%\" label=\"50%\">\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" value=\"\" readonly/>\n </template>\n </DesignComponent>\n <DesignComponent width=\"min(100%,320px)\" label=\"min(...)\" >\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" value=\"\" readonly/>\n </template>\n </DesignComponent>\n </div>\n "
889
+ },
890
+ {
891
+ id: "FieldCancel",
892
+ name: {
893
+ en: "Cancel button",
894
+ ru: "Кнопка очистки"
895
+ },
896
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent cancel=\"auto\" label=\"auto\">\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" value=\"\" readonly/>\n </template>\n </DesignComponent>\n <DesignComponent cancel=\"auto\" :cancel-show=\"true\" label=\"auto + value\">\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" value=\"Value\" readonly/>\n </template>\n </DesignComponent>\n <DesignComponent cancel=\"always\" label=\"always\">\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" value=\"\" readonly/>\n </template>\n </DesignComponent>\n </div>\n "
897
+ },
898
+ {
899
+ id: "FieldNavigation",
900
+ name: {
901
+ en: "Navigation & arrows",
902
+ ru: "Навигация / стрелки"
903
+ },
904
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent arrow-carousel label=\"carousel (start)\" :disabled-previous=\"true\">\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" value=\"Item 1\" readonly/>\n </template>\n </DesignComponent>\n <DesignComponent arrow-carousel label=\"carousel (end)\" :disabled-next=\"true\">\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" value=\"Item 9\" readonly/>\n </template>\n </DesignComponent>\n <DesignComponent arrow-stepper align=\"center\" label=\"stepper (center)\">\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" value=\"42\" readonly/>\n </template>\n </DesignComponent>\n <DesignComponent arrow-stepper label=\"stepper (prev off)\" :disabled-previous=\"true\">\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" value=\"0\" readonly/>\n </template>\n </DesignComponent>\n </div>\n "
905
+ },
906
+ {
907
+ id: "FieldSkeleton",
908
+ name: {
909
+ en: "Skeleton",
910
+ ru: "Скелетон"
911
+ },
912
+ components: ["Skeleton"],
913
+ template: "\n <DesignSkeleton :active=\"true\" style=\"max-width:280px\">\n <DesignComponent isSkeleton label=\"Skeleton\" counter=\"12\" helper-message=\"Helper message: loading description.\">\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" readonly/>\n </template>\n </DesignComponent>\n </DesignSkeleton>\n "
914
+ },
915
+ {
916
+ id: "FieldSlots",
917
+ name: {
918
+ en: "Slots usage",
919
+ ru: "Использование слотов"
920
+ },
921
+ template: "\n <DesignComponent\n :cancelShow=\"true\"\n label=\"Label prop\"\n icon=\"home\"\n icon-trailing=\"close\"\n value=\"Value\"\n >\n <template #default=\"{id, className}\">\n <input :id=\"id\" :class=\"className\" value=\"Value\" readonly/>\n </template>\n <template #leading>Leading slot</template>\n <template #trailing>Trailing slot</template>\n <template #label><b>Label slot</b></template>\n <template #prefix>Prefix slot</template>\n <template #suffix>Suffix slot</template>\n <template #caption>Caption slot</template>\n </DesignComponent>\n "
922
+ }
923
+ ],
924
+ documentation: {
925
+ body: "\n<StorybookDescriptions componentName={'Field'} type={'field'}/>\n\n<StorybookDescriptions componentName={'Field'} type={'value'}/>\n\n<StorybookDescriptions componentName={'Field'} type={'width'}/>\n<Canvas of={Component.FieldWidth}/>\n\n<StorybookDescriptions componentName={'Field'} type={'cancel'}/>\n<Canvas of={Component.FieldCancel}/>\n\n<StorybookDescriptions componentName={'Field'} type={'arrows'}/>\n<Canvas of={Component.FieldNavigation}/>\n\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.FieldSkeleton}/>\n ",
926
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n ",
927
+ slots: "\n<Canvas of={Component.FieldSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'label'} />\n<StorybookDescriptions componentName={'Slot'} type={'prefix'} />\n<StorybookDescriptions componentName={'Slot'} type={'suffix'} />\n<StorybookDescriptions componentName={'Slot'} type={'caption'} />\n<StorybookDescriptions componentName={'Field'} type={'slots'} />\n "
928
+ },
929
+ ai: {
930
+ render: "\n<div :class=\"classDemo.item\">\n <Field label=\"Field Label\" helper-message=\"Helper text\" v-bind=\"args\">\n <template v-slot:default=\"{binds}\">\n <input :value=\"args.value\" readonly v-bind=\"binds as any\"/>\n </template>\n </Field>\n</div>\n ",
931
+ description: "\nFoundational wrapper component for all form inputs. Provides the structural layout, styling, and state management for labels, helper messages, validation errors, icons, and progress indicators.\nFeatures a composable structure with prefix/suffix slots, leading/trailing icons, and a character counter. Automatically handles validation states, loading spinners, and disabled/readonly appearances.\nIntegrates with native inputs via the #default slot, exposing essential bindings (id, class, aria) to maintain design consistency and accessibility. Use as a base when creating custom form controls.\n ",
932
+ hide: !0
933
+ }
934
+ },
935
+ {
936
+ name: "FieldCounter",
937
+ description: {
938
+ en: "Component for displaying character count and input length limits in form fields",
939
+ ru: "Компонент для отображения счетчика символов и ограничений длины ввода в полях форм"
940
+ },
941
+ possibilities: {
942
+ en: [
943
+ "displays current character count",
944
+ "shows maximum character limit when specified",
945
+ "customizable display template with placeholders",
946
+ "automatic visibility based on counter and maxlength props",
947
+ "supports both string and number values",
948
+ "compact display format (e.g., \"50 / 100\")",
949
+ "template-based formatting with [c] and [m] placeholders"
950
+ ],
951
+ ru: [
952
+ "отображает текущее количество символов",
953
+ "показывает максимальное ограничение символов при указании",
954
+ "настраиваемый шаблон отображения с заполнителями",
955
+ "автоматическая видимость на основе свойств counter и maxlength",
956
+ "поддерживает значения как строк, так и чисел",
957
+ "компактный формат отображения (например, \"50 / 100\")",
958
+ "форматирование на основе шаблона с заполнителями [c] и [m]"
959
+ ]
960
+ },
961
+ import: [],
962
+ stories: [{
963
+ id: "FieldCounterTemplate",
964
+ name: {
965
+ en: "Custom Template",
966
+ ru: "Пользовательский шаблон"
967
+ },
968
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Default template</div>\n <DesignComponent :counter=\"75\" :maxlength=\"150\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Custom template: \"Characters: [c] of [m]\"</div>\n <DesignComponent :counter=\"75\" :maxlength=\"150\" template=\"Characters: [c] of [m]\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Counter only with template: \"[c] chars\"</div>\n <DesignComponent :counter=\"42\" template=\"<b>[c]</b> chars\"/>\n </div>\n </div>\n "
969
+ }],
970
+ documentation: { body: "\n<StorybookDescriptions componentName={'FieldCounter'} type={'fieldCounter'}/>\n<StorybookDescriptions componentName={'FieldCounter'} type={'templates'}/>\n<Canvas of={Component.FieldCounterTemplate}/>\n " },
971
+ ai: {
972
+ description: "\nUtility subcomponent for displaying character counts and input limits. Provides visual feedback to users and accessibility status to screen readers during formal data entry.\nFeatures customizable display templates with placeholders ([c] for counter, [m] for max) and automated visibility based on maxlength. Includes ARIA live region management for screen reader announcements.\nIntegrated automatically into components like Input and Textarea; should generally not be used directly. Controlled via counter and maxlength props within the Field wrapper.\n ",
973
+ hide: !0
974
+ }
975
+ },
976
+ {
977
+ name: "FieldLabel",
978
+ description: {
979
+ en: "Component for displaying a field label and required marker; can be used together with counter and progress",
980
+ ru: "Компонент для отображения метки поля и индикатора обязательности; может использоваться вместе со счетчиком и прогрессом"
981
+ },
982
+ possibilities: {
983
+ en: [
984
+ "renders a text label for form fields",
985
+ "shows required marker when the field is mandatory",
986
+ "works together with FieldCounter and Progress when passed as props",
987
+ "keeps consistent spacing and classes within form controls"
988
+ ],
989
+ ru: [
990
+ "рендерит текстовую метку для полей формы",
991
+ "показывает индикатор обязательности для обязательных полей",
992
+ "работает совместно со счетчиком FieldCounter и прогрессом при передаче соответствующих свойств",
993
+ "сохраняет согласованные отступы и классы внутри элементов формы"
994
+ ]
995
+ },
996
+ import: [],
997
+ stories: [],
998
+ documentation: {
999
+ body: "\n<StorybookDescriptions componentName={'FieldLabel'} type={'fieldLabel'}/>\n ",
1000
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'label'} />\n "
1001
+ },
1002
+ ai: {
1003
+ description: "\nSubcomponent of the Field wrapper responsible for rendering form field labels and required markers. Ensures consistent styling, positioning, and accessibility for all input headings.\nFeatures automated support for the \"required\" property (showing an asterisk) and works seamlessly with character counters and progress bars within the Field header.\nControlled through the label prop or #label slot. Primarily used within Input, Textarea, and other field-based controls; should generally not be used as a standalone component.\n ",
1004
+ hide: !0
1005
+ }
1006
+ },
1007
+ {
1008
+ name: "FieldMessage",
1009
+ description: {
1010
+ en: "Component for displaying helper and validation messages for form fields",
1011
+ ru: "Компонент для отображения вспомогательных и валидационных сообщений для полей форм"
1012
+ },
1013
+ possibilities: {
1014
+ en: [
1015
+ "shows helper text under the field",
1016
+ "displays validation message when error occurs",
1017
+ "visibility control via a dedicated force flag",
1018
+ "works together with input fields and counters",
1019
+ "supports HTML-safe rendering by design system"
1020
+ ],
1021
+ ru: [
1022
+ "показывает вспомогательный текст под полем",
1023
+ "отображает сообщение валидации при ошибке",
1024
+ "управление видимостью через специальный флаг",
1025
+ "работает совместно с полями ввода и счетчиками",
1026
+ "поддерживает безопасный рендеринг HTML силами дизайн-системы"
1027
+ ]
1028
+ },
1029
+ import: [],
1030
+ stories: [{
1031
+ id: "FieldMessageSlots",
1032
+ name: {
1033
+ en: "Slots",
1034
+ ru: "Слоты"
1035
+ },
1036
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent>\n <template #helper>\n <span><b>Helper:</b> You can use Latin letters</span>\n </template>\n </DesignComponent>\n <DesignComponent>\n <template #validation>\n <span><b>Validation:</b> Please fill out this field</span>\n </template>\n </DesignComponent>\n </div>\n "
1037
+ }],
1038
+ documentation: {
1039
+ body: "\n<StorybookDescriptions componentName={'FieldMessage'} type={'fieldMessage'}/>\n ",
1040
+ slots: "\n<Canvas of={Component.FieldMessageSlots}/>\n<StorybookDescriptions componentName={'FieldMessage'} type={'slots'}/>\n "
1041
+ },
1042
+ ai: {
1043
+ description: "\nSubcomponent of the Field wrapper used to display informational text, validation errors, and character counters beneath input fields. Provides critical visual feedback regarding entry status or requirements.\nFeatures a priority system where validation messages override helper text when an error occurs. Includes automatic status styling (red for errors) and integration with the character counter logic.\nControlled via helperMessage and validationMessage props; linked automatically to the input via ARIA attributes. Primarily used within Field-based components; should generally not be used directly.\n ",
1044
+ hide: !0
1045
+ }
1046
+ },
1047
+ {
1048
+ name: "Grid",
1049
+ description: {
1050
+ en: "Layout component for creating grid structures with customizable columns",
1051
+ ru: "Компонент макета для создания сеточных структур с настраиваемыми колонками"
1052
+ },
1053
+ possibilities: {
1054
+ en: [
1055
+ "configurable number of columns",
1056
+ "gap customization",
1057
+ "responsive layout support"
1058
+ ],
1059
+ ru: [
1060
+ "настраиваемое количество колонок",
1061
+ "настройка отступов (gap)",
1062
+ "поддержка адаптивной верстки"
1063
+ ]
1064
+ },
1065
+ import: [],
1066
+ render: "\n <DesignComponent>\n <div\n class=\"wiki-storybook-dummy wiki-storybook-dummy--color--blue wiki-storybook-dummy--size--sm\"\n style=\"grid-column: span 2;\"\n />\n <div\n class=\"wiki-storybook-dummy wiki-storybook-dummy--color--red wiki-storybook-dummy--size--sm\"\n style=\"grid-column: span 4;\"\n />\n <div\n class=\"wiki-storybook-dummy wiki-storybook-dummy--color--green wiki-storybook-dummy--size--sm\"\n style=\"grid-column: span 6;\"\n />\n </DesignComponent>\n ",
1067
+ stories: [],
1068
+ documentation: {
1069
+ body: "\n<StorybookDescriptions componentName={'Grid'} type={'grid'}/>\n ",
1070
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n "
1071
+ },
1072
+ ai: {
1073
+ render: "\n <div :class=\"classDemo.item\">\n <Grid v-bind=\"args\">\n <div style=\"grid-column: span 4;\">1</div>\n <div style=\"grid-column: span 4;\">2</div>\n <div style=\"grid-column: span 4;\">3</div>\n </Grid>\n </div>\n ",
1074
+ description: "\nLayout utility designed to manage the arrangement of items in a flexible, column-based system. Provides a standardized way to create responsive multi-column layouts across different screen sizes.\nFeatures a default 12-column grid structure with customizable gaps and responsive breakpoint support. Works in tandem with GridItem to provide precise control over column spans and alignment.\nControlled primarily via CSS variables for columns and gaps. Use as a top-level container for dashboard widgets, form layouts, or any content requiring a structured multi-column arrangement.\n "
1075
+ }
1076
+ },
1077
+ {
1078
+ name: "GridItem",
1079
+ description: {
1080
+ en: "Individual item within a Grid component",
1081
+ ru: "Отдельный элемент внутри компонента Grid"
1082
+ },
1083
+ possibilities: {
1084
+ en: ["configurable span across columns", "responsive span settings (base, sm, md, lg, xl, 2xl)"],
1085
+ ru: ["настраиваемый охват колонок (span)", "адаптивные настройки охвата (base, sm, md, lg, xl, 2xl)"]
1086
+ },
1087
+ import: [],
1088
+ render: "\n <div class=\"wiki-storybook-group\">\n <DesignComponent v-bind=\"args\">\n <div class=\"wiki-storybook-dummy wiki-storybook-dummy--color--blue wiki-storybook-dummy--size--sm\"/>\n </DesignComponent>\n </div>\n ",
1089
+ stories: [],
1090
+ documentation: {
1091
+ body: "\n<StorybookDescriptions componentName={'GridItem'} type={'gridItem'}/>\n ",
1092
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n "
1093
+ },
1094
+ ai: {
1095
+ render: "\n<div :class=\"classDemo.item\" style=\"min-height: 48px;\">\n <div style=\"display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px;\">\n <GridItem v-bind=\"args\">Item</GridItem>\n </div>\n</div>\n ",
1096
+ description: "\nIndividual cell unit within a Grid layout, providing granular control over column spanning across various screen resolutions. Enables building complex, responsive layouts with minimal CSS.\nFeatures responsive span settings for all major breakpoints (base, sm, md, lg, xl, 2xl). Allows items to occupy different widths on mobile vs desktop, ensuring optimal use of screen space.\nControlled via the base prop for default span and breakpoint-specific props (e.g., md=\"6\"). Use inside a Grid container to define local widths for UI elements, widgets, or form fields.\n "
1097
+ }
1098
+ },
1099
+ {
1100
+ name: "Group",
1101
+ description: {
1102
+ en: "A structural component designed to group related content with support for headers, descriptions, and flexible layout options. It uses the <div> tag and <h4> header by default.",
1103
+ ru: "Структурный компонент, предназначенный для группировки связанного контента с поддержкой заголовков, описаний и гибких настроек макета. По умолчанию использует тег <div> и заголовок <h4>."
1104
+ },
1105
+ possibilities: {
1106
+ en: [
1107
+ "standardized grouping of content using <div> tag",
1108
+ "support for titles (h4 by default), labels, descriptions, and captions",
1109
+ "support for icons",
1110
+ "fully inherits Block component capabilities"
1111
+ ],
1112
+ ru: [
1113
+ "стандартизированная группировка контента с использованием тега <div>",
1114
+ "поддержка заголовков (h4 по умолчанию), меток, описаний и подписей",
1115
+ "поддержка иконок",
1116
+ "полностью наследует возможности компонента Block"
1117
+ ]
1118
+ },
1119
+ import: [],
1120
+ render: "\n <DesignComponent v-bind=\"args\">\n <p>\n The Group component serves as a container for grouping thematic content within a page or another component.\n It defaults to using the <code>&lt;div&gt;</code> HTML tag and <code>&lt;h4&gt;</code> for headlines.\n </p>\n <p>\n It inherits all the features of the Block component, providing a consistent way to handle headers, descriptions, and icons.\n </p>\n </DesignComponent>\n ",
1121
+ stories: [{
1122
+ id: "GroupBasic",
1123
+ name: {
1124
+ en: "Basic",
1125
+ ru: "Базовые"
1126
+ },
1127
+ template: "\n <DesignComponent\n headline=\"Notifications\"\n label=\"Settings\"\n icon=\"notifications\"\n description=\"Configure how you receive notifications and manage your alert settings for a better user experience.\"\n >\n <p>\n Control how and when you receive updates from the system. You can choose to be notified about\n important account activities, new features, and marketing updates.\n </p>\n <p>\n Tailor your preferences to stay informed without being overwhelmed by unnecessary messages.\n Changes are saved automatically and applied within a few minutes.\n </p>\n </DesignComponent>\n "
1128
+ }, {
1129
+ id: "GroupSlots",
1130
+ name: {
1131
+ en: "Slots usage",
1132
+ ru: "Использование слотов"
1133
+ },
1134
+ template: "\n <DesignComponent>\n <template #default>Default slot</template>\n <template #headline>Headline slot</template>\n <template #label>Label slot</template>\n <template #description>Description slot</template>\n <template #caption>Caption slot</template>\n <template #trailing>Trailing slot</template>\n </DesignComponent>\n "
1135
+ }],
1136
+ documentation: {
1137
+ body: "\n<StorybookDescriptions componentName={'Group'} type={'group'}/>\n<Canvas of={Component.GroupBasic}/>\n\n<StorybookDescriptions componentName={'Block'} type={'differences'}/>\n",
1138
+ slots: "\n<Canvas of={Component.GroupSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n<StorybookDescriptions componentName={'Slot'} type={'headline'}/>\n<StorybookDescriptions componentName={'Slot'} type={'label'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n<StorybookDescriptions componentName={'Slot'} type={'caption'}/>\n<StorybookDescriptions componentName={'Slot'} type={'trailing'}/>\n",
1139
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'labelId'}/>\n<StorybookDescriptions componentName={'Expose'} type={'descriptionId'}/>\n"
1140
+ },
1141
+ ai: {
1142
+ render: "\n<div :class=\"classDemo.item\">\n <Group v-bind=\"args\">\n Content of the group.\n </Group>\n</div>\n ",
1143
+ description: "\nStructural component for organizing related content with a standardized header hierarchy. Acts as a semantic wrapper for subsections or grouping elements within a larger section or card.\nFeatures support for headlines (h4 by default), labels, icons, and descriptions. Inherits all capabilities of the Block component, providing a consistent layout for titles and body content.\nControlled via headline, label, and description props. Use for grouping settings, categorizing information, or breaking down complex forms into logical, titled segments.\n "
1144
+ }
1145
+ },
1146
+ {
1147
+ name: "HorizontalScroll",
1148
+ description: {
1149
+ en: "Component for creating a horizontally scrollable container. Supports smooth scrolling to the selected element.",
1150
+ ru: "Компонент для создания горизонтально прокручиваемого контейнера. Поддерживает плавную прокрутку к выбранному элементу."
1151
+ },
1152
+ possibilities: {
1153
+ en: [
1154
+ "horizontal scrolling of content",
1155
+ "automatic scrolling to the selected element on mount",
1156
+ "support for custom tags",
1157
+ "slot for content with binding data for items"
1158
+ ],
1159
+ ru: [
1160
+ "горизонтальная прокрутка контента",
1161
+ "автоматическая прокрутка к выбранному элементу при монтировании",
1162
+ "поддержка пользовательских тегов",
1163
+ "слот для контента с данными привязки для элементов"
1164
+ ]
1165
+ },
1166
+ render: "\n <DesignComponent v-bind=\"args\">\n <template #default=\"{ classItem }\">\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.94 0.06 25);\">Item 1</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.95 0.06 50);\">Item 2</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.96 0.07 70);\">Item 3</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.97 0.08 85);\">Item 4</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.96 0.08 110);\">Item 5</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.95 0.07 140);\">Item 6</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.95 0.06 160);\">Item 7</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.94 0.05 175);\">Item 8</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.94 0.05 195);\">Item 9</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.94 0.05 215);\">Item 10</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.93 0.05 240);\">Item 11</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.93 0.06 265);\">Item 12</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.93 0.07 285);\">Item 13</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.93 0.08 305);\">Item 14</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.93 0.08 325);\">Item 15</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.93 0.08 345);\">Item 16</div>\n </template>\n </DesignComponent>\n ",
1167
+ stories: [{
1168
+ id: "HorizontalScrollBasic",
1169
+ name: {
1170
+ en: "Basic Usage",
1171
+ ru: "Базовое использование"
1172
+ },
1173
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent style=\"width: 100%;\">\n <template #default=\"{ classItem }\">\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"height: 128px; background: oklch(0.93 0.08 305);\">Item 1</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"height: 128px; background: oklch(0.93 0.08 325);\">Item 2</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"height: 128px; background: oklch(0.93 0.08 345);\">Item 3</div>\n </template>\n </DesignComponent>\n\n <DesignComponent style=\"width: 100%;\">\n <template #default=\"{ classItem, classItemSelected }\">\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.94 0.06 25);\">Item 1</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.95 0.06 50);\">Item 2</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.96 0.07 70);\">Item 3</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"[classItem, classItemSelected]\" style=\"width: 256px; height: 128px; background: oklch(0.97 0.08 85);\">Item 4</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.96 0.08 110);\">Item 5</div>\n <div class=\"wiki-storybook-flex-center\" :class=\"classItem\" style=\"width: 256px; height: 128px; background: oklch(0.95 0.07 140);\">Item 6</div>\n </template>\n </DesignComponent>\n </div>\n "
1174
+ }],
1175
+ documentation: {
1176
+ body: "\n<StorybookDescriptions componentName={'HorizontalScroll'} type={'horizontalScroll'}/>\n<StorybookDescriptions componentName={'HorizontalScroll'} type={'selected'}/>\n<Canvas of={Component.HorizontalScrollBasic}/>\n ",
1177
+ expose: "\n<StorybookDescriptions componentName={'HorizontalScroll'} type={'expose.toSelected'}/>\n "
1178
+ },
1179
+ ai: { description: "\nContainer component that enables horizontal scrolling for large content sets like galleries, item lists, or tab bars. Ensures smooth navigation when the body exceeds the viewport width.\nFeatures automated scroll-to-selected behavior on mount and exposes a programmatic method (toSelected) for navigation. Provides scoped slot bindings to ensure correct item styling and selection tracking.\nControlled via the tag prop for root element customization. Use for product carousels, category filters, or any horizontally-oriented navigation menus in space-constrained layouts.\n " }
1180
+ },
1181
+ {
1182
+ name: "Icon",
1183
+ description: {
1184
+ en: "A component for displaying vector icons with support for state management, automatic directionality adaptation, and design system styling.",
1185
+ ru: "Компонент для отображения векторных иконок с поддержкой управления состоянием, автоматической адаптацией направления и стилизацией дизайн-системы."
1186
+ },
1187
+ possibilities: {
1188
+ en: [
1189
+ "rendering icons by identifier",
1190
+ "toggling between two icons based on the active state",
1191
+ "automatic mirroring for RTL languages",
1192
+ "integration with the color palette and inverse mode",
1193
+ "displaying a skeleton loader placeholder"
1194
+ ],
1195
+ ru: [
1196
+ "рендеринг иконок по идентификатору",
1197
+ "переключение между двумя иконками в зависимости от активного состояния",
1198
+ "автоматическое зеркалирование для RTL языков",
1199
+ "интеграция с цветовой палитрой и инверсный режим",
1200
+ "отображение заполнителя (скелетона) при загрузке"
1201
+ ]
1202
+ },
1203
+ import: [],
1204
+ stories: [
1205
+ {
1206
+ id: "IconState",
1207
+ name: {
1208
+ en: "Icon state",
1209
+ ru: "Состояние иконки"
1210
+ },
1211
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--xs wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Default</div>\n <DesignComponent icon=\"home\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--xs wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Active</div>\n <DesignComponent icon=\"heart_minus\" iconActive=\"favorite\" :active=\"true\"/>\n </div>\n </div>\n "
1212
+ },
1213
+ {
1214
+ id: "IconDirection",
1215
+ name: {
1216
+ en: "Direction",
1217
+ ru: "Направление компонента"
1218
+ },
1219
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--xs wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">LTR</div>\n <DesignComponent dir icon=\"arrow_forward\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--xs wiki-storybook-item--center wiki-storybook-item--rtl\">\n <div class=\"wiki-storybook-item__label\">RTL</div>\n <DesignComponent dir icon=\"arrow_forward\"/>\n </div>\n </div>\n "
1220
+ },
1221
+ {
1222
+ id: "IconPalette",
1223
+ name: {
1224
+ en: "Palette",
1225
+ ru: "Палитра"
1226
+ },
1227
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--xs wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Basic</div>\n <DesignComponent icon=\"home\" size=\"lg\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--xs wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Palette</div>\n <DesignComponent icon=\"home\" size=\"lg\" asPalette/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--xs wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Inverse</div>\n <DesignComponent icon=\"home\" size=\"lg\" asPalette inverse/>\n </div>\n </div>\n "
1228
+ },
1229
+ {
1230
+ id: "IconSkeleton",
1231
+ name: {
1232
+ en: "Skeleton",
1233
+ ru: "Скелетон"
1234
+ },
1235
+ components: ["Skeleton"],
1236
+ template: "\n <DesignSkeleton :active=\"true\">\n <DesignComponent isSkeleton icon=\"home\" rounded=\"md\"/>\n </DesignSkeleton>\n "
1237
+ }
1238
+ ],
1239
+ documentation: {
1240
+ body: "\n<StorybookDescriptions componentName={'Icon'} type={'icon'}/>\n<Canvas of={Component.IconState}/>\n\n<StorybookDescriptions componentName={'Style'} type={'dir'}/>\n<Canvas of={Component.IconDirection}/>\n\n<StorybookDescriptions componentName={'Style'} type={'asPalette'}/>\n<Canvas of={Component.IconPalette}/>\n\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.IconSkeleton}/>\n ",
1241
+ events: "\n<StorybookDescriptions componentName={'Image'} type={'event.load'}/>\n ",
1242
+ expose: "\n<StorybookDescriptions componentName={'Icon'} type={'expose.isActive'}/>\n ",
1243
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n "
1244
+ },
1245
+ ai: { description: "\nVector icon component, typically utilizing the Material Symbols library. Supports dynamic state management, automatic mirroring for RTL languages, and deep integration with the design system's palette.\nFeatures toggle-able states (active/inactive) with specific icons for each, built-in skeleton loading (isSkeleton), and directionality adaptation. Customizing via size, palette, and inverse props ensures visual consistency across all themes.\nControlled via the icon and iconActive props and various styling flags. Use for navigation links, action buttons, status indicators, or any UI element requiring concise visual representation.\n " }
1246
+ },
1247
+ {
1248
+ name: "Input",
1249
+ description: {
1250
+ en: "Text input field component with validation, masking and formatting support",
1251
+ ru: "Компонент текстового поля ввода с поддержкой валидации, маскирования и форматирования"
1252
+ },
1253
+ possibilities: {
1254
+ en: [
1255
+ "multiple input types: text, number, email, password, tel, url, date, time and more",
1256
+ "built-in validation with custom messages",
1257
+ "mask support for formatted input (phone, date, custom patterns)",
1258
+ "currency and number formatting",
1259
+ "password visibility toggle",
1260
+ "prefix and suffix support",
1261
+ "counter for character limits",
1262
+ "navigation arrows for numeric and selection inputs",
1263
+ "autocomplete, spellcheck and autocorrect support",
1264
+ "integrated with a Field component for consistent styling"
1265
+ ],
1266
+ ru: [
1267
+ "множественные типы ввода: text, number, email, password, tel, url, date, time и другие",
1268
+ "встроенная валидация с пользовательскими сообщениями",
1269
+ "поддержка маскирования для форматированного ввода (телефон, дата, пользовательские паттерны)",
1270
+ "форматирование валюты и чисел",
1271
+ "переключатель видимости пароля",
1272
+ "поддержка префикса и суффикса",
1273
+ "счётчик для ограничения символов",
1274
+ "стрелки навигации для числовых и выборочных полей",
1275
+ "поддержка автозаполнения, проверки орфографии и автокоррекции",
1276
+ "интегрирован с компонентом Field для единообразной стилизации"
1277
+ ]
1278
+ },
1279
+ import: ["import { ref } from 'vue'"],
1280
+ render: "\n <DesignComponent v-bind=\"args\" />\n ",
1281
+ stories: [
1282
+ {
1283
+ id: "InputTypes",
1284
+ name: {
1285
+ en: "Input types",
1286
+ ru: "Типы ввода"
1287
+ },
1288
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent type=\"text\" label=\"Text\" placeholder=\"Enter text\" />\n <DesignComponent type=\"email\" label=\"Email\" placeholder=\"email@example.com\" />\n <DesignComponent type=\"password\" label=\"Password\" placeholder=\"Enter password\" />\n <DesignComponent type=\"number\" label=\"Number\" placeholder=\"0\" />\n <DesignComponent type=\"text\" label=\"Phone\" mask=\"+1 (***) ***-****\" placeholder=\"+1 (555) 000-0000\" />\n <DesignComponent type=\"date\" label=\"Date\" />\n <DesignComponent type=\"search\" label=\"Search\" placeholder=\"Search...\" />\n </div>\n "
1289
+ },
1290
+ {
1291
+ id: "InputNumber",
1292
+ name: {
1293
+ en: "Number formatting",
1294
+ ru: "Форматирование чисел"
1295
+ },
1296
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent type=\"number\" value=\"1234567\" label=\"Number\" />\n <DesignComponent type=\"number-format\" value=\"1234567\" language=\"en-US\" label=\"Formatted\" />\n <DesignComponent type=\"number\" value=\"50\" :min=\"0\" :max=\"100\" label=\"From 0 to 100\" />\n <DesignComponent type=\"number\" value=\"10\" arrow=\"stepper\" :step=\"5\" :arrow-step=\"10\" label=\"Step 5/10\" />\n <DesignComponent type=\"number-format\" value=\"1234567.89\" align=\"center\" :fraction=\"2\" label=\"Centered\" />\n </div>\n "
1297
+ },
1298
+ {
1299
+ id: "InputCurrency",
1300
+ name: {
1301
+ en: "Currency & number formatting",
1302
+ ru: "Валюта и форматирование чисел"
1303
+ },
1304
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent\n type=\"currency\"\n label=\"Price (USD)\"\n currency=\"USD\"\n />\n <DesignComponent\n type=\"currency\"\n label=\"Price (USD)\"\n currency=\"USD\"\n value=\"1234.56\"\n />\n <DesignComponent\n type=\"currency\"\n label=\"Price (currency-hide)\"\n currency=\"EUR\"\n currency-hide\n value=\"1234.56\"\n />\n </div>\n "
1305
+ },
1306
+ {
1307
+ id: "InputDate",
1308
+ name: {
1309
+ en: "Date and time",
1310
+ ru: "Дата и время"
1311
+ },
1312
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent type=\"date\" label=\"Date\" language=\"ru-RU\" />\n <DesignComponent type=\"datetime\" label=\"Date and Time\" language=\"en-US\" />\n <DesignComponent type=\"year-month\" label=\"Period\" language=\"ru-RU\" />\n <DesignComponent type=\"time\" label=\"Time\" />\n <DesignComponent type=\"hour-minute\" label=\"Hours:Minutes\" />\n <DesignComponent type=\"date\" label=\"Limited Date\" language=\"ru-RU\" min=\"2024-01-01\" max=\"2024-12-31\" />\n </div>\n "
1313
+ },
1314
+ {
1315
+ id: "InputMask",
1316
+ name: {
1317
+ en: "Masked input",
1318
+ ru: "Маскированный ввод"
1319
+ },
1320
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent type=\"tel\" mask=\"+1 (***) ***-****\" placeholder=\"+1 (555) 000-0000\" label=\"Phone\" />\n <DesignComponent type=\"text\" mask=\"**** **** **** ****\" placeholder=\"0000 0000 0000 0000\" label=\"Card\" />\n <DesignComponent type=\"tel\" mask=\"+1 (***) ***-****\" :mask-visible=\"false\" label=\"No placeholder\" />\n </div>\n "
1321
+ },
1322
+ {
1323
+ id: "InputVModel",
1324
+ name: {
1325
+ en: "Two-way binding (v-model)",
1326
+ ru: "Двусторонняя привязка (v-model)"
1327
+ },
1328
+ setup: "\n return {\n inputValue: ref('Initial value'),\n maskValue: ref(''),\n numberValue: ref(42)\n }\n ",
1329
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <span>Current value: {{ inputValue }}</span>\n <button class=\"wiki-storybook-button\" @click=\"inputValue = 'Changed value'\">Set text</button>\n <button class=\"wiki-storybook-button wiki-storybook-button-warning\" @click=\"inputValue = ''\">Clear</button>\n </div>\n <DesignComponent\n v-model=\"inputValue\"\n type=\"text\"\n label=\"Text input\"\n placeholder=\"Enter text\"\n />\n\n <div class=\"wiki-storybook-flex\">\n <span>Current value: {{ maskValue }}</span>\n <button class=\"wiki-storybook-button\" @click=\"maskValue = '2022-05-13'\">Set date</button>\n <button class=\"wiki-storybook-button wiki-storybook-button-warning\" @click=\"maskValue = ''\">Clear</button>\n </div>\n <DesignComponent\n v-model=\"maskValue\"\n type=\"date\"\n label=\"Date input\"\n />\n\n <div class=\"wiki-storybook-flex\">\n <span>Current value: {{ numberValue }}</span>\n <button class=\"wiki-storybook-button\" @click=\"numberValue += 10\">+10</button>\n <button class=\"wiki-storybook-button\" @click=\"numberValue -= 10\">-10</button>\n </div>\n <DesignComponent\n v-model=\"numberValue\"\n type=\"number\"\n label=\"Number input\"\n :step=\"1\"\n />\n </div>\n "
1330
+ },
1331
+ {
1332
+ id: "InputSkeleton",
1333
+ name: {
1334
+ en: "Skeleton",
1335
+ ru: "Скелетон"
1336
+ },
1337
+ components: ["Skeleton"],
1338
+ template: "\n <DesignSkeleton :active=\"true\" style=\"max-width:320px\">\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent\n isSkeleton\n label=\"Loading field\"\n helperMessage=\"This field is loading...\"\n />\n <DesignComponent\n isSkeleton\n label=\"Another field\"\n counterShow\n />\n </div>\n </DesignSkeleton>\n "
1339
+ }
1340
+ ],
1341
+ documentation: {
1342
+ body: "\n<StorybookDescriptions componentName={'Input'} type={'input'}/>\n\n<StorybookDescriptions componentName={'Input'} type={'type'}/>\n<Canvas of={Component.InputTypes}/>\n\n<StorybookDescriptions componentName={'Input'} type={'number'}/>\n<Canvas of={Component.InputNumber}/>\n\n<StorybookDescriptions componentName={'Input'} type={'currency'}/>\n<Canvas of={Component.InputCurrency}/>\n\n<StorybookDescriptions componentName={'Input'} type={'date'}/>\n<Canvas of={Component.InputDate}/>\n\n<StorybookDescriptions componentName={'Input'} type={'mask'}/>\n<Canvas of={Component.InputMask}/>\n\n<StorybookDescriptions componentName={'Value'} type={'value'}/>\n<StorybookDescriptions componentName={'Value'} type={'v-model'}/>\n<Canvas of={Component.InputVModel}/>\n\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.InputSkeleton}/>\n ",
1343
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'input'}/>\n<StorybookDescriptions componentName={'Event'} type={'change'}/>\n ",
1344
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'label'} />\n<StorybookDescriptions componentName={'Slot'} type={'prefix'} />\n<StorybookDescriptions componentName={'Slot'} type={'suffix'} />\n<StorybookDescriptions componentName={'Slot'} type={'caption'} />\n<StorybookDescriptions componentName={'Slot'} type={'leading'} />\n<StorybookDescriptions componentName={'Slot'} type={'trailing'} />\n "
1345
+ },
1346
+ ai: { description: "\nPrimary component for user data entry, wrapping the native <input> element with enhanced functionality. Supports floating labels, validation, masking, and multiple formatting modes (numeric, currency, password).\nFeatures built-in support for input masks (e.g., phone numbers), automatic currency/number formatting, and password visibility toggles. Includes field affixes (prefix/suffix), leading/trailing icons, and a character counter.\nControlled via v-model and type props, emitting standard input/change events. Use for all text-based data collection, from simple names to complex formatted financial or identification data.\n " }
1347
+ },
1348
+ {
1349
+ name: "Image",
1350
+ description: {
1351
+ en: "Component for displaying images and icons. Based on `ImageDesign` and supports working with files, links, and icon names.",
1352
+ ru: "Компонент для отображения изображений и иконок. Основан на `ImageDesign` и поддерживает работу с файлами, ссылками и именами икон"
1353
+ },
1354
+ possibilities: {
1355
+ en: [
1356
+ "support for various source types: string, `File`, image or PDF address",
1357
+ "adaptive sizing with `adaptive`, `objectWidth`, `objectHeight`",
1358
+ "cropping and positioning via `coordinator`, `x`, `y`",
1359
+ "rotation or hiding the component with properties `turn`, `hide`, `disabled`",
1360
+ "mode selection for filling (`size`: `auto`, `contain`, `cover`)"
1361
+ ],
1362
+ ru: [
1363
+ "поддержка различных типов исходников: строка, `File`, адрес картинки или PDF",
1364
+ "адаптивное измерение с помощью `adaptive`, `objectWidth`, `objectHeight`",
1365
+ "обрезка и позиционирование через `coordinator`, `x`, `y`",
1366
+ "поворот или скрытие компонента свойствами `turn`, `hide`, `disabled`",
1367
+ "выбор режима заполнения (`size`: `auto`, `contain`, `cover`)"
1368
+ ]
1369
+ },
1370
+ render: "\n <div class=\"wiki-storybook-item wiki-storybook-item--widescreen wiki-storybook-item--squared--sm\">\n <DesignComponent v-bind=\"args\"/>\n </div>\n ",
1371
+ import: ["import { demoPdf, image1, phone1, phone2, phone3 } from '@dxtmisha/wiki/media'"],
1372
+ stories: [
1373
+ {
1374
+ id: "ImageType",
1375
+ name: {
1376
+ en: "Value type",
1377
+ ru: "Тип значения"
1378
+ },
1379
+ setup: "\n return {\n image1,\n demoPdf\n }\n ",
1380
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--widescreen wiki-storybook-item--squared--lg\">\n <div class=\"wiki-storybook-item__label\">Icon</div>\n <DesignComponent value=\"home\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--widescreen wiki-storybook-item--squared--lg\">\n <div class=\"wiki-storybook-item__label\">Image/ contain</div>\n <DesignComponent :value=\"image1\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--rectangle wiki-storybook-item--squared--max\">\n <div class=\"wiki-storybook-item__label\">PDF</div>\n <DesignComponent :value=\"demoPdf\"/>\n </div>\n </div>\n "
1381
+ },
1382
+ {
1383
+ id: "ImageSize",
1384
+ name: {
1385
+ en: "Display control",
1386
+ ru: "Отображение"
1387
+ },
1388
+ setup: "\n return {\n image1\n }\n ",
1389
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md\">\n <div class=\"wiki-storybook-item__label\">size: auto (default)</div>\n <DesignComponent :value=\"image1\" size=\"auto\" tag-img/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md\">\n <div class=\"wiki-storybook-item__label\">size: contain</div>\n <DesignComponent :value=\"image1\" size=\"contain\" tag-img/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md\">\n <div class=\"wiki-storybook-item__label\">size: cover</div>\n <DesignComponent :value=\"image1\" size=\"cover\" tag-img/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md\">\n <div class=\"wiki-storybook-item__label\">coordinator</div>\n <DesignComponent :value=\"image1\" :coordinator=\"[60, 10, 10, 40]\" tag-img/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md\">\n <div class=\"wiki-storybook-item__label\">x, y</div>\n <DesignComponent :value=\"image1\" x=\"20%\" y=\"-10%\" tag-img/>\n </div>\n </div>\n "
1390
+ },
1391
+ {
1392
+ id: "ImageTagImg",
1393
+ name: {
1394
+ en: "Using img tag",
1395
+ ru: "Использование тега img"
1396
+ },
1397
+ setup: "\n return {\n image1\n }\n ",
1398
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md\">\n <div class=\"wiki-storybook-item__label\">Background (default)</div>\n <DesignComponent :value=\"image1\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md\">\n <div class=\"wiki-storybook-item__label\">tag-img + alt</div>\n <DesignComponent :value=\"image1\" tag-img alt=\"Example image\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md\">\n <div class=\"wiki-storybook-item__label\">tag-img + lazy + srcset</div>\n <DesignComponent :value=\"image1\" tag-img lazy alt=\"Responsive image\" :srcset=\"{ '1x': image1, '2x': image1 }\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md\">\n <div class=\"wiki-storybook-item__label\">tag-img + picture</div>\n <DesignComponent :value=\"image1\" tag-img alt=\"Adaptive image\" :picture=\"{ 768: image1, 1024: image1 }\"/>\n </div>\n </div>\n "
1399
+ },
1400
+ {
1401
+ id: "ImageAdaptive",
1402
+ name: {
1403
+ en: "Adapted images",
1404
+ ru: "Адаптированные изображения"
1405
+ },
1406
+ setup: "\n return {\n phone1,\n phone2,\n phone3\n }\n ",
1407
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md\">\n <DesignComponent :value=\"phone1\" adaptive object-width=\"76.2\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md\">\n <DesignComponent :value=\"phone2\" adaptive object-width=\"71.9\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md\">\n <DesignComponent :value=\"phone3\" adaptive object-width=\"129.9\" tag-img/>\n </div>\n </div>\n "
1408
+ }
1409
+ ],
1410
+ documentation: {
1411
+ body: "\n<StorybookDescriptions componentName={'Image'} type={'image'}/>\n<StorybookDescriptions componentName={'Image'} type={'value'}/>\n<StorybookDescriptions componentName={'Image'} type={'flag'}/>\n<Canvas of={Component.ImageType}/>\n\n<StorybookDescriptions componentName={'Image'} type={'img-tag'}/>\n<Canvas of={Component.ImageTagImg}/>\n\n<StorybookDescriptions componentName={'Image'} type={'size'}/>\n<Canvas of={Component.ImageSize}/>\n\n<StorybookDescriptions componentName={'Image'} type={'adaptive'}/>\n<Canvas of={Component.ImageAdaptive}/>\n ",
1412
+ events: "\n<StorybookDescriptions componentName={'Image'} type={'event.load'}/>\n ",
1413
+ expose: "\n<StorybookDescriptions componentName={'Image'} type={'expose'}/>\n "
1414
+ },
1415
+ ai: {
1416
+ render: "\n<div\n :class=\"classDemo.item\"\n style=\"position: relative; width: 48px; height: 48px;\"\n>\n <Image v-bind=\"args\"/>\n</div>\n ",
1417
+ description: "\nUniversal component for displaying graphic content, including images, Material icons, and PDF files. Automatically detects the content type based on the value string or File object provided.\nFeatures multiple display modes (contain, cover, auto), adaptive scaling (objectWidth/Height), and standard img tag support for SEO and lazy loading. Includes advanced positioning via coordinator and x/y props.\nControlled via the value prop and various sizing/rendering flags. Use for avatars, product photos, system icons, or embedded PDF documents requiring specific cropping and aspect ratio control.\n "
1418
+ }
1419
+ },
1420
+ {
1421
+ name: "List",
1422
+ description: {
1423
+ en: "Advanced list component with keyboard navigation, search functionality, and hierarchical data support",
1424
+ ru: "Продвинутый компонент списка с навигацией с клавиатуры, функциональностью поиска и поддержкой иерархических данных"
1425
+ },
1426
+ possibilities: {
1427
+ en: [
1428
+ "keyboard navigation with arrow keys and shortcuts",
1429
+ "real-time search and highlight functionality",
1430
+ "hierarchical data structure with groups and menus",
1431
+ "focus management and item selection",
1432
+ "lightweight rendering mode for large datasets",
1433
+ "customizable item types and rendering",
1434
+ "event-driven interaction system",
1435
+ "accessibility support with ARIA attributes",
1436
+ "automatic scroll management and viewport optimization",
1437
+ "integration with icons, badges, and other components"
1438
+ ],
1439
+ ru: [
1440
+ "навигация с клавиатуры со стрелками и горячими клавишами",
1441
+ "поиск в реальном времени и функциональность выделения",
1442
+ "иерархическая структура данных с группами и меню",
1443
+ "управление фокусом и выбором элементов",
1444
+ "облегченный режим рендеринга для больших наборов данных",
1445
+ "настраиваемые типы элементов и рендеринг",
1446
+ "событийно-ориентированная система взаимодействия",
1447
+ "поддержка доступности с ARIA атрибутами",
1448
+ "автоматическое управление прокруткой и оптимизация области просмотра",
1449
+ "интеграция с иконками, бейджами и другими компонентами"
1450
+ ]
1451
+ },
1452
+ stories: [{
1453
+ id: "ListLiteMode",
1454
+ name: {
1455
+ en: "Lite mode",
1456
+ ru: "Облегчённый режим"
1457
+ },
1458
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--padding wiki-storybook-item--squared--md\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Without lite</div>\n <DesignComponent\n :liteThreshold=\"3\"\n :list=\"[\n {label: 'Alpha', value: 'a', icon: 'bookmark'},\n {label: 'Beta', value: 'b', icon: 'label'},\n {label: 'Gamma', value: 'g', icon: 'flag'},\n {label: 'Delta', value: 'd', icon: 'star'},\n {label: 'Epsilon', value: 'e', icon: 'bolt'}\n ]\"\n />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--padding wiki-storybook-item--squared--md\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">With lite</div>\n <DesignComponent\n :lite=\"true\"\n :liteThreshold=\"3\"\n :list=\"[\n {label: 'Alpha', value: 'a', icon: 'bookmark'},\n {label: 'Beta', value: 'b', icon: 'label'},\n {label: 'Gamma', value: 'g', icon: 'flag'},\n {label: 'Delta', value: 'd', icon: 'star'},\n {label: 'Epsilon', value: 'e', icon: 'bolt'}\n ]\"\n />\n </div>\n </div>\n "
1459
+ }, {
1460
+ id: "ListHighlight",
1461
+ name: {
1462
+ en: "Highlighting",
1463
+ ru: "Выделение"
1464
+ },
1465
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--padding wiki-storybook-item--squared--md\">\n <DesignComponent\n :list=\"[\n {label: 'Project index example', value: 'projects', icon: 'folder'},\n {label: 'Advanced context options', value: 'experiments', icon: 'tune'},\n {label: 'Next examination notes', value: 'example', icon: 'description'},\n {label: 'User experience metrics', value: 'express', icon: 'insights'}\n ]\"\n highlight=\"exam\"\n :highlightLengthStart=\"4\"\n />\n </div>\n </div>\n "
1466
+ }],
1467
+ documentation: {
1468
+ body: "\n<StorybookDescriptions componentName={'List'} type={'list'}/>\n\n<StorybookDescriptions componentName={'List'} type={'lite'}/>\n<Canvas of={Component.ListLiteMode}/>\n\n<StorybookDescriptions componentName={'Value'} type={'highlight'}/>\n<Canvas of={Component.ListHighlight}/>\n ",
1469
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n<StorybookDescriptions componentName={'List'} type={'event.close'}/>\n ",
1470
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'selected'}/>\n ",
1471
+ slots: "\n<StorybookDescriptions componentName={'List'} type={'slot.html'}/>\n "
1472
+ },
1473
+ ai: { description: "\nCore engine for rendering interactive, searchable, and hierarchical lists. Serves as the foundation for complex components like Selects, Dropdowns, and multi-level Navigation Menus.\nFeatures support for multiple item types (group, menu, line, html), real-time search highlighting, and full keyboard navigation. Includes automatic focus management, ARIA accessibility roles, and a \"lite\" rendering mode for performance optimization with large datasets.\nControlled via the list prop for data and v-model:selected for state tracking. Use as the primary building block for any interface requiring item selection, structured data display, or interactive command menus.\n " }
1474
+ },
1475
+ {
1476
+ name: "ListGroup",
1477
+ description: {
1478
+ en: "Auxiliary component for the List component to group and organize list items with collapsible structure",
1479
+ ru: "Вспомогательный компонент для компонента List для группировки и организации элементов списка со сворачиваемой структурой"
1480
+ },
1481
+ possibilities: {
1482
+ en: [
1483
+ "grouping helper for List component items",
1484
+ "collapsible/expandable group functionality",
1485
+ "customizable group header with icon support",
1486
+ "automatic arrow icon rotation based on state",
1487
+ "nested group support for complex hierarchies",
1488
+ "seamless integration with List ecosystem",
1489
+ "keyboard navigation and accessibility",
1490
+ "smooth animation transitions",
1491
+ "flexible content management through slots"
1492
+ ],
1493
+ ru: [
1494
+ "помощник группировки для элементов компонента List",
1495
+ "функциональность сворачиваемой/разворачиваемой группы",
1496
+ "настраиваемый заголовок группы с поддержкой иконок",
1497
+ "автоматический поворот стрелки в зависимости от состояния",
1498
+ "поддержка вложенных групп для сложных иерархий",
1499
+ "бесшовная интеграция с экосистемой List",
1500
+ "навигация с клавиатуры и доступность",
1501
+ "плавные анимационные переходы",
1502
+ "гибкое управление контентом через слоты"
1503
+ ]
1504
+ },
1505
+ render: "\n <DesignComponent v-bind=\"args\">\n <template v-slot:head=\"{open}\">\n Primary group header with expand/collapse toggle\n </template>\n <template v-slot:list>\n Main content area for grouped list items\n </template>\n </DesignComponent>\n\n <DesignComponent v-bind=\"args\">\n <template v-slot:head=\"{open}\">\n Secondary group header with custom styling\n </template>\n <template v-slot:list>\n Alternative layout for nested components\n </template>\n </DesignComponent>\n\n <DesignComponent v-bind=\"args\">\n <template v-slot:head=\"{open}\">\n Tertiary group header with advanced options\n </template>\n <template v-slot:list>\n Extended content area with additional features\n </template>\n </DesignComponent>\n ",
1506
+ import: [],
1507
+ stories: [],
1508
+ documentation: {
1509
+ body: "\n<StorybookDescriptions componentName={'ListGroup'} type={'listGroup'}/>\n ",
1510
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'open'}/>\n ",
1511
+ slots: "\n<StorybookDescriptions componentName={'ListGroup'} type={'slots'}/>\n "
1512
+ },
1513
+ ai: {
1514
+ render: "\n<div :class=\"classDemo.item\">\n <ListGroup v-bind=\"args\">\n <template #head=\"{ binds }\">\n <span v-bind=\"binds\">head</span>\n </template>\n <template #list>\n list\n </template>\n </ListGroup>\n</div>\n ",
1515
+ description: "\nStructural component for grouping related list items into collapsible/expandable hierarchies. Manages the visual nesting and visibility of child elements, providing organized categorization within dense lists.\nFeatures smooth height animations via MotionTransform and integrated header functionality with automatic arrow rotation. Exposes localized bindings in the #head slot to correctly link triggers with their collapsible content.\nControlled via the open prop and utilizes #head and #list slots for content distribution. Use for navigation submenus, categorized data lists, or accordion-style expanding rows.\n ",
1516
+ hide: !0
1517
+ }
1518
+ },
1519
+ {
1520
+ name: "ListItem",
1521
+ description: {
1522
+ en: "Versatile list item component for displaying structured content",
1523
+ ru: "Универсальный компонент элемента списка для отображения структурированного контента"
1524
+ },
1525
+ possibilities: {
1526
+ en: [
1527
+ "multiple content areas: label, description, prefix, suffix, caption",
1528
+ "icon support with flexible positioning and alignment",
1529
+ "badge integration for status indicators",
1530
+ "interactive states: focus, selected, disabled, readonly",
1531
+ "progress and skeleton loading states",
1532
+ "ripple effect for enhanced user feedback",
1533
+ "flexible tag options: button, link, div, span",
1534
+ "built-in accessibility support",
1535
+ "customizable through design tokens"
1536
+ ],
1537
+ ru: [
1538
+ "множественные области контента: метка, описание, префикс, суффикс, заголовок",
1539
+ "поддержка иконок с гибким позиционированием и выравниванием",
1540
+ "интеграция значков для индикаторов статуса",
1541
+ "интерактивные состояния: фокус, выбранный, отключенный, только для чтения",
1542
+ "состояния загрузки с прогрессом и скелетоном",
1543
+ "эффект пульсации для улучшенной обратной связи",
1544
+ "гибкие варианты тегов: кнопка, ссылка, div, span",
1545
+ "встроенная поддержка доступности",
1546
+ "настраиваемый через токены дизайна"
1547
+ ]
1548
+ },
1549
+ render: "\n <DesignComponent v-bind=\"args\"/>\n <DesignComponent v-bind=\"args\"/>\n <DesignComponent v-bind=\"args\"/>\n ",
1550
+ import: [],
1551
+ stories: [
1552
+ {
1553
+ id: "ListItemBasic",
1554
+ name: {
1555
+ en: "Basic",
1556
+ ru: "Базовые"
1557
+ },
1558
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--padding wiki-storybook-item--squared--md\">\n <DesignComponent>Simple Item</DesignComponent>\n <DesignComponent icon=\"person\">Item with Icon</DesignComponent>\n <DesignComponent description=\"Additional information\">Item with Description</DesignComponent>\n <DesignComponent focus>Focus</DesignComponent>\n <DesignComponent selected>Selected</DesignComponent>\n <DesignComponent disabled>Disabled</DesignComponent>\n <DesignComponent readonly>Readonly</DesignComponent>\n <DesignComponent prefix=\"01\" suffix=\"Info\">With Prefix & Suffix</DesignComponent>\n <DesignComponent caption=\"Caption\" description=\"Description text here\">Full Content</DesignComponent>\n <DesignComponent icon=\"star\" badge=\"new\">Icon with Badge</DesignComponent>\n </div>\n </div>\n "
1559
+ },
1560
+ {
1561
+ id: "ListItemHighlight",
1562
+ name: {
1563
+ en: "Highlighting",
1564
+ ru: "Выделение"
1565
+ },
1566
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--padding wiki-storybook-item--squared--md\">\n <DesignComponent highlight=\"search\" label=\"Search result item\"/>\n <DesignComponent highlight=\"tex\" :highlightLengthStart=\"3\" label=\"Text with highlighting\"/>\n <DesignComponent highlight=\"te\" :highlightLengthStart=\"3\" label=\"Text without highlighting (too short)\"/>\n <DesignComponent highlight=\"example\" :highlightLengthStart=\"2\" label=\"Example text for highlighting\"/>\n </div>\n </div>\n "
1567
+ },
1568
+ {
1569
+ id: "ListItemFill",
1570
+ name: {
1571
+ en: "Fill",
1572
+ ru: "Заливка"
1573
+ },
1574
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--padding wiki-storybook-item--squared--md\">\n <DesignComponent label=\"Default fill\"/>\n <DesignComponent fill=\"#ff0000\" label=\"Red fill\"/>\n <DesignComponent fill=\"rgb(0, 128, 255)\" label=\"Blue fill\"/>\n <DesignComponent fill=\"rgba(255, 165, 0, 0.7)\" label=\"Orange transparent fill\"/>\n </div>\n </div>\n "
1575
+ },
1576
+ {
1577
+ id: "ListItemSkeleton",
1578
+ name: {
1579
+ en: "Skeleton loading",
1580
+ ru: "Загрузка скелетона"
1581
+ },
1582
+ components: ["Skeleton"],
1583
+ template: "\n <DesignSkeleton :active=\"true\">\n <DesignComponent\n :isSkeleton=\"true\"\n caption=\"Caption\"\n description=\"Short desc.\"\n >Item A</DesignComponent>\n <DesignComponent\n :isSkeleton=\"true\"\n caption=\"Caption\"\n description=\"A bit longer description for the list item component.\"\n >Item Label Example</DesignComponent>\n <DesignComponent\n :isSkeleton=\"true\"\n caption=\"Caption\"\n description=\"This is a much longer description to demonstrate how the skeleton adapts to different content lengths in the list item.\"\n >Very Long Item Label Example for Skeleton</DesignComponent>\n </DesignSkeleton>\n "
1584
+ }
1585
+ ],
1586
+ documentation: {
1587
+ body: "\n<StorybookDescriptions componentName={'ListItem'} type={'basic'}/>\n<Canvas of={Component.ListItemBasic}/>\n\n<StorybookDescriptions componentName={'Value'} type={'highlight'}/>\n<Canvas of={Component.ListItemHighlight}/>\n\n<StorybookDescriptions componentName={'ListItem'} type={'fill'}/>\n<Canvas of={Component.ListItemFill}/>\n\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.ListItemSkeleton}/>\n ",
1588
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n ",
1589
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'value'}/>\n<StorybookDescriptions componentName={'Expose'} type={'detail'}/>\n ",
1590
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n<StorybookDescriptions componentName={'Slot'} type={'prefix'}/>\n<StorybookDescriptions componentName={'Slot'} type={'caption'}/>\n<StorybookDescriptions componentName={'Slot'} type={'suffix'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n<StorybookDescriptions componentName={'ListItem'} type={'slots'}/>\n "
1591
+ },
1592
+ ai: { description: "\nVersatile structural component for rendering items within lists, menus, or navigation bars. Provides a standardized layout with high-density content support for labels, descriptions, and metadata.\nFeatures dedicated slots for prefix (leading), content (central), suffix (trailing metadata), and trailing (action indicators). Includes built-in support for icons, badges, selected states, and interactive feedback like ripple effects.\nControlled via label, description, and href/to props; renders as an <a> tag when navigating. Use for building navigation menus, data-rich list rows, or simple clickable interactive elements.\n " }
1593
+ },
1594
+ {
1595
+ name: "ListMenu",
1596
+ description: {
1597
+ en: "Auxiliary component for the List component to create nested menus and organize navigation elements with expandable structure",
1598
+ ru: "Вспомогательный компонент для компонента List для создания вложенных меню и организации навигационных элементов с раскрывающейся структурой"
1599
+ },
1600
+ possibilities: {
1601
+ en: [
1602
+ "menu helper for List component navigation",
1603
+ "expandable/collapsible submenu functionality",
1604
+ "customizable menu header with icon support",
1605
+ "automatic arrow icon rotation based on state",
1606
+ "nested menu support for complex hierarchies",
1607
+ "seamless integration with List ecosystem",
1608
+ "keyboard navigation and accessibility",
1609
+ "smooth animation transitions",
1610
+ "flexible menu content management through slots"
1611
+ ],
1612
+ ru: [
1613
+ "помощник меню для навигации компонента List",
1614
+ "функциональность раскрывающихся/сворачивающихся подменю",
1615
+ "настраиваемый заголовок меню с поддержкой иконок",
1616
+ "автоматический поворот стрелки в зависимости от состояния",
1617
+ "поддержка вложенных меню для сложных иерархий",
1618
+ "бесшовная интеграция с экосистемой List",
1619
+ "навигация с клавиатуры и поддержка доступности",
1620
+ "плавные анимационные переходы",
1621
+ "гибкое управление содержимым меню через слоты"
1622
+ ]
1623
+ },
1624
+ render: "\n <DesignComponent v-bind=\"args\">\n <template v-slot:head=\"{binds}\">\n <span v-bind=\"binds\">Primary menu header with expand/collapse toggle</span>\n </template>\n <template v-slot:list>\n <div class=\"wiki-storybook-item--padding\">\n <h4>Menu Content</h4>\n <p>Navigation elements providing access to application sections.</p>\n\n <ul>\n <li><strong>Dashboard</strong> - Main control panel</li>\n <li><strong>Content</strong> - Content management</li>\n <li><strong>Analytics</strong> - Data analysis tools</li>\n </ul>\n\n <p>Supports nested submenus and adapts to user permissions.</p>\n </div>\n </template>\n </DesignComponent>\n ",
1625
+ import: [],
1626
+ stories: [],
1627
+ documentation: {
1628
+ body: "\n<StorybookDescriptions componentName={'ListMenu'} type={'listMenu'}/>\n ",
1629
+ events: "\n<StorybookDescriptions componentName={'Window'} type={'event.window'}/>\n\n<StorybookDescriptions componentName={'Image'} type={'event.load'}/>\n ",
1630
+ expose: "\n<StorybookDescriptions componentName={'Window'} type={'expose'}/>\n ",
1631
+ slots: "\n<StorybookDescriptions componentName={'ListGroup'} type={'slots'}/>\n "
1632
+ },
1633
+ ai: {
1634
+ render: "\n<div :class=\"classDemo.item\">\n <ListMenu embedded :window-attrs=\"{open: true}\" v-bind=\"args\">\n <template #head=\"{ binds }\">\n <span v-bind=\"binds as any\">head</span>\n </template>\n <template #list>\n list\n </template>\n </ListMenu>\n</div>\n ",
1635
+ description: "\nSpecialized wrapper component for creating dropdown menus or nested navigation trees. Utilizes dynamic window positioning to display a list of actions or sub-options relative to a trigger element.\nFeatures an adaptive menu preset managing visibility, positioning (popover vs inline), and interaction modes. Exposes standard binds in the #head slot to automate trigger setup and ensures smooth animations during state transitions.\nControlled via the windowAttrs prop for positioning and utilizes #head and #list slots for trigger and content. Use for context menus, account settings dropdowns, or multi-level primary navigation links.\n ",
1636
+ hide: !0
1637
+ }
1638
+ },
1639
+ {
1640
+ name: "Mask",
1641
+ description: {
1642
+ en: "Input masking utility for text, numbers, currency and dates with flexible patterns and validation.",
1643
+ ru: "Утилита маскирования ввода для текста, чисел, валют и дат с гибкими шаблонами и валидацией."
1644
+ },
1645
+ possibilities: {
1646
+ en: [
1647
+ "string or multi-pattern masks (auto selection)",
1648
+ "special symbols define input groups and literals are auto-inserted",
1649
+ "per-group and global validation patterns",
1650
+ "number / currency formats with grouping and fraction control",
1651
+ "date/time helpers and locale-aware behavior"
1652
+ ],
1653
+ ru: [
1654
+ "одиночные и множественные маски (автовыбор по вводу)",
1655
+ "спецсимволы задают группы ввода, литералы подставляются автоматически",
1656
+ "валидация по группам и глобально",
1657
+ "форматы числа/валюты с группировкой и дробной частью",
1658
+ "помощники для даты/времени и поведение с учётом локали"
1659
+ ]
1660
+ },
1661
+ import: [],
1662
+ render: "\n <div class=\"wiki-storybook-group\" >\n <DesignComponent\n class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\"\n v-bind=\"args\"\n />\n </div>\n ",
1663
+ stories: [
1664
+ {
1665
+ id: "MaskBasic",
1666
+ name: {
1667
+ en: "Mask Examples",
1668
+ ru: "Примеры масок"
1669
+ },
1670
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Phone number format (+1 area code)</div>\n <DesignComponent :mask=\"'+1 *** *** ** **'\" placeholder=\"Enter phone number\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Auto format selection (multiple masks)</div>\n <DesignComponent\n :mask=\"['*** *** ***', '**** **** ****']\"\n placeholder=\"Auto format selection\"\n />\n </div>\n </div>\n "
1671
+ },
1672
+ {
1673
+ id: "MaskSpecial",
1674
+ name: {
1675
+ en: "Special Characters",
1676
+ ru: "Специальные символы"
1677
+ },
1678
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Default special symbol (*)</div>\n <DesignComponent :mask=\"'+7 *** *** ** **'\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Custom special symbol (X)</div>\n <DesignComponent :mask=\"'XX.XX.XXXX'\" special=\"X\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Multiple special symbols (*, #, X)</div>\n <DesignComponent :mask=\"'***-###-XXX'\" :special=\"['*', '#', 'X']\" />\n </div>\n </div>\n "
1679
+ },
1680
+ {
1681
+ id: "MaskValidation",
1682
+ name: {
1683
+ en: "Validation",
1684
+ ru: "Валидация"
1685
+ },
1686
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Pattern validation (6-9 digits only)</div>\n <DesignComponent :mask=\"'*** *** ***'\" pattern=\"[6-9]+\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Group-specific pattern (*, # groups)</div>\n <DesignComponent :mask=\"'**:##'\" :special=\"['*', '#']\" :pattern=\"'[6-9]+'\"/>\n </div>\n </div>\n "
1687
+ },
1688
+ {
1689
+ id: "MaskGroupSave",
1690
+ name: {
1691
+ en: "Group navigation (groupSave)",
1692
+ ru: "Навигация по группам (groupSave)"
1693
+ },
1694
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Smart navigation enabled (groupSave: true)</div>\n <DesignComponent :mask=\"'****-####'\" :special=\"['*', '#']\" :groupSave=\"true\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Smart navigation disabled (groupSave: false)</div>\n <DesignComponent :mask=\"'****-####'\" :special=\"['*', '#']\" :groupSave=\"false\" />\n </div>\n </div>\n "
1695
+ },
1696
+ {
1697
+ id: "MaskMatch",
1698
+ name: {
1699
+ en: "Allowed characters (match)",
1700
+ ru: "Допустимые символы (match)"
1701
+ },
1702
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">HEX characters (0-9, A-F)</div>\n <DesignComponent :mask=\"'***-***'\" match=\"[A-F0-9]\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Letters only (A-Z, a-z)</div>\n <DesignComponent :mask=\"'***-***'\" match=\"[A-Za-z]\" />\n </div>\n </div>\n "
1703
+ },
1704
+ {
1705
+ id: "MaskNumberTypes",
1706
+ name: {
1707
+ en: "Numeric types",
1708
+ ru: "Числовые типы"
1709
+ },
1710
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Simple number</div>\n <DesignComponent type=\"number\" :fraction=\"2\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Formatted number with separators</div>\n <DesignComponent type=\"number-format\" language=\"ru\" :fraction=\"2\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Currency (RUB)</div>\n <DesignComponent type=\"currency\" currency=\"RUB\" language=\"ru\" />\n </div>\n </div>\n "
1711
+ },
1712
+ {
1713
+ id: "MaskDateTypes",
1714
+ name: {
1715
+ en: "Date and time types",
1716
+ ru: "Типы дат и времени"
1717
+ },
1718
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Full date (DD.MM.YYYY)</div>\n <DesignComponent type=\"date\" language=\"ru\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Date and time</div>\n <DesignComponent type=\"datetime\" language=\"ru\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Time only (HH:MM)</div>\n <DesignComponent type=\"hour-minute\" />\n </div>\n </div>\n "
1719
+ }
1720
+ ],
1721
+ documentation: {
1722
+ body: "\n<StorybookDescriptions componentName={'Mask'} type={'basic'}/>\n\n<StorybookDescriptions componentName={'Mask'} type={'mask'}/>\n<Canvas of={Component.MaskBasic}/>\n\n<StorybookDescriptions componentName={'Mask'} type={'special'}/>\n<Canvas of={Component.MaskSpecial}/>\n\n<StorybookDescriptions componentName={'Mask'} type={'groupSave'}/>\n<Canvas of={Component.MaskGroupSave}/>\n\n<StorybookDescriptions componentName={'Mask'} type={'match'}/>\n<Canvas of={Component.MaskMatch}/>\n\n<StorybookDescriptions componentName={'Mask'} type={'pattern'}/>\n<Canvas of={Component.MaskValidation}/>\n\n<StorybookDescriptions componentName={'Mask'} type={'type'}/>\n\n<StorybookDescriptions componentName={'Mask'} type={'numberTypes'}/>\n<Canvas of={Component.MaskNumberTypes}/>\n\n<StorybookDescriptions componentName={'Mask'} type={'dateTypes'}/>\n<Canvas of={Component.MaskDateTypes}/>\n\n<StorybookDescriptions componentName={'Mask'} type={'visible'}/>\n ",
1723
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'input'}/>\n<StorybookDescriptions componentName={'Event'} type={'beforeinput'}/>\n<StorybookDescriptions componentName={'Event'} type={'reset'}/>\n<StorybookDescriptions componentName={'Event'} type={'focus'}/>\n<StorybookDescriptions componentName={'Event'} type={'keyboard'}/>\n<StorybookDescriptions componentName={'Event'} type={'paste'}/>\n ",
1724
+ expose: "\n<StorybookDescriptions componentName={'Mask'} type={'expose'}/>\n<StorybookDescriptions componentName={'Expose'} type={'clear'}/>\n "
1725
+ },
1726
+ ai: {
1727
+ description: "\nLow-level input masking utility for controlling and formatting text, numeric, and date/time data entry. Intercepts input events to enforce strict patterns, automatically inserting literal characters and validating each keystroke against allowed rules.\nFeatures support for single or multiple patterns (auto-selection), specialized input types (currency, number-format), and locale-aware date/time validation. Includes granular control over allowed characters (match), decimal fractions, and value range constraints (min/max).\nIntegrated primarily within the Input component; should generally not be used as a standalone element. Controlled via mask and type props, providing a foundation for phone numbers, credit card fields, and international financial inputs.\n ",
1728
+ hide: !0
1729
+ }
1730
+ },
1731
+ {
1732
+ name: "Menu",
1733
+ description: {
1734
+ en: "Composite menu that combines Window, Bars, and List for nested interactive navigation",
1735
+ ru: "Составной компонент, объединяющий Window, Bars и List для вложенной интерактивной навигации"
1736
+ },
1737
+ possibilities: {
1738
+ en: [
1739
+ "popup container from Window with control/title/footer slots",
1740
+ "toolbar actions via Bars and hierarchical items via List",
1741
+ "nested groups and menus with keyboard focus and selection",
1742
+ "lightweight rendering for large menus (lite + liteThreshold)",
1743
+ "custom fields mapping with keyLabel and keyValue",
1744
+ "custom item attributes and container attributes (itemAttrs, listAttrs)"
1745
+ ],
1746
+ ru: [
1747
+ "всплывающий контейнер из Window со слотами control/title/footer",
1748
+ "действия панели через Bars и иерархия пунктов через List",
1749
+ "вложенные группы и меню с фокусом с клавиатуры и выбором",
1750
+ "облегчённый рендер для больших меню (lite + liteThreshold)",
1751
+ "кастомное сопоставление полей через keyLabel и keyValue",
1752
+ "настройка атрибутов пунктов и списка (itemAttrs, listAttrs)"
1753
+ ]
1754
+ },
1755
+ import: ["import { ref } from 'vue'"],
1756
+ render: "\n <DesignComponent v-bind=\"args\">\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Open Menu</button>\n </template>\n </DesignComponent>\n ",
1757
+ stories: [
1758
+ {
1759
+ id: "MenuNavigation",
1760
+ name: {
1761
+ en: "Navigation with previous/next",
1762
+ ru: "Навигация с previous/next"
1763
+ },
1764
+ setup: "\n return {\n selectedValue: ref('color2'),\n colors: ref([\n {label: '[1]Red', value: 'color1', icon: 'palette'},\n {label: '[2]Green', value: 'color2', icon: 'palette'},\n {label: '[3]Blue', value: 'color3', icon: 'palette'},\n {label: '[4]Yellow', value: 'color4', icon: 'palette'},\n {label: '[5]Purple', value: 'color5', icon: 'palette'},\n {label: '[6]Orange', value: 'color6', icon: 'palette'}\n ]),\n step: ref(1)\n }\n ",
1765
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-item__label\">Step size:</div>\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"step = 1\">1 item</button>\n <button class=\"wiki-storybook-button\" @click=\"step = 2\">2 items</button>\n <button class=\"wiki-storybook-button\" @click=\"step = 3\">3 items</button>\n </div>\n </div>\n\n <DesignComponent\n v-model:selected=\"selectedValue\"\n :list=\"colors\"\n :step=\"step\"\n is-selected-by-value\n >\n <template #control=\"{previous, next, selectedNames, open}\">\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div class=\"wiki-storybook-flex\">\n <button\n class=\"wiki-storybook-button\"\n @click=\"previous\"\n style=\"padding: 4px 12px;\"\n >\n ◀ Previous\n </button>\n <div style=\"flex: 1; text-align: center; font-weight: 500;\">\n {{ selectedNames.value[0] || 'None' }}\n </div>\n <button\n class=\"wiki-storybook-button\"\n @click=\"next\"\n style=\"padding: 4px 12px;\"\n >\n Next ▶\n </button>\n </div>\n </div>\n </template>\n </DesignComponent>\n\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <div>Selected: {{ selectedValue }}</div>\n <div>Step: {{ step }}</div>\n </div>\n </div>\n "
1766
+ },
1767
+ {
1768
+ id: "MenuAjax",
1769
+ name: {
1770
+ en: "AJAX Loading",
1771
+ ru: "AJAX Загрузка"
1772
+ },
1773
+ setup: "\n const loadMenuData = () => new Promise(resolve => setTimeout(() => resolve([\n {label: 'Dashboard', value: 'dashboard', icon: 'dashboard'},\n {label: 'Users', value: 'users', icon: 'people'},\n {label: 'Settings', value: 'settings', icon: 'settings'},\n {label: 'Reports', value: 'reports', icon: 'assessment'}\n ]), 512))\n\n return { loadMenuData }\n ",
1774
+ template: "\n <DesignComponent :ajax=\"loadMenuData\" selected=\"settings\">\n <template #control=\"{binds, loading}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">\n Open AJAX Menu (loading: {{ loading }})\n </button>\n </template>\n </DesignComponent>\n "
1775
+ },
1776
+ {
1777
+ id: "MenuVModel",
1778
+ name: {
1779
+ en: "Two-way binding (v-model)",
1780
+ ru: "Двусторонняя привязка (v-model)"
1781
+ },
1782
+ setup: "\n return {\n selectedValue: ref('settings'),\n menuItems: ref([\n {label: 'Dashboard', value: 'dashboard', icon: 'dashboard'},\n {label: 'Users', value: 'users', icon: 'people'},\n {label: 'Settings', value: 'settings', icon: 'settings'},\n {label: 'Reports', value: 'reports', icon: 'assessment'},\n {label: 'Help', value: 'help', icon: 'help'}\n ])\n }\n ",
1783
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"selectedValue = 'dashboard'\">Select Dashboard</button>\n <button class=\"wiki-storybook-button\" @click=\"selectedValue = 'reports'\">Select Reports</button>\n <button class=\"wiki-storybook-button\" @click=\"selectedValue = ''\">Clear</button>\n </div>\n <div class=\"wiki-storybook-flex\">\n <DesignComponent\n v-model:selected=\"selectedValue\"\n :list=\"menuItems\"\n is-selected-by-value\n >\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">\n Open Menu\n </button>\n </template>\n </DesignComponent>\n </div>\n <div>Selected value: {{ selectedValue }}</div>\n </div>\n "
1784
+ }
1785
+ ],
1786
+ documentation: {
1787
+ body: "\n<StorybookDescriptions componentName={'Menu'} type={'menu'}/>\n\n<StorybookDescriptions componentName={'Menu'} type={'navigation'}/>\n<Canvas of={Component.MenuNavigation}/>\n\n<StorybookDescriptions componentName={'Menu'} type={'ajax'}/>\n<Canvas of={Component.MenuAjax}/>\n\n<StorybookDescriptions componentName={'Value'} type={'v-model'}/>\n<Canvas of={Component.MenuVModel}/>\n ",
1788
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n<StorybookDescriptions componentName={'Event'} type={'bars'}/>\n<StorybookDescriptions componentName={'Menu'} type={'event.updateValue'}/>\n<StorybookDescriptions componentName={'Window'} type={'event.window'}/>\n ",
1789
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'selected'}/>\n<StorybookDescriptions componentName={'Menu'} type={'expose.navigation'}/>\n ",
1790
+ slots: "\n<StorybookDescriptions componentName={'List'} type={'slot.html'}/>\n<StorybookDescriptions componentName={'Menu'} type={'slotsControl'}/>\n<StorybookDescriptions componentName={'Menu'} type={'slots'}/>\n "
1791
+ },
1792
+ ai: {
1793
+ render: "\n<div :class=\"classDemo.item\">\n <Menu embedded :window-attrs=\"{open: true}\" v-bind=\"args\">\n <template #control=\"{ binds }\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">\n Open Menu\n </button>\n </template>\n </Menu>\n</div>\n ",
1794
+ description: "\nComprehensive navigational component that integrates a trigger (Control), a floating container (Window), and a structured dataset (List). Designed for multi-level menus, context-sensitive actions, and complex selection interfaces requiring icons or grouping.\nFeatures support for hierarchical data structures (nested submenus), real-time AJAX loading, and full keyboard accessibility. Includes sophisticated focus management, automatic positioning relative to the trigger, and a lite rendering mode for optimized performance with large lists.\nControlled via the list prop for items and v-model:selected for state tracking. Use for user profile menus, sidebar navigation, or advanced select-like UI patterns where standard dropdowns lack sufficient structural flexibility.\n "
1795
+ }
1796
+ },
1797
+ {
1798
+ name: "Modal",
1799
+ description: {
1800
+ en: "Simplified wrapper over a Window component for creating centered modal dialogs",
1801
+ ru: "Упрощенная обертка над компонентом Window для создания центрированных модальных диалогов"
1802
+ },
1803
+ possibilities: {
1804
+ en: [
1805
+ "pre-configured modal window with centered positioning",
1806
+ "overlay backdrop with background blocking",
1807
+ "close on the ESC key and click outside",
1808
+ "integration with scrollbar for long content",
1809
+ "slots for title, content and footer customization",
1810
+ "lifecycle events (preparation, opening, closing)",
1811
+ "close a button with a customizable icon",
1812
+ "programmatic control via a v-model:open",
1813
+ "focus management and keyboard navigation",
1814
+ "responsive design with mobile optimization"
1815
+ ],
1816
+ ru: [
1817
+ "предварительно настроенное модальное окно с центрированием",
1818
+ "оверлей с блокировкой фона",
1819
+ "закрытие по ESC и клику вне области",
1820
+ "интеграция со скроллбаром для длинного контента",
1821
+ "слоты для настройки заголовка, содержимого и подвала",
1822
+ "события жизненного цикла (preparation, opening, closing)",
1823
+ "кнопка закрытия с настраиваемой иконкой",
1824
+ "программное управление через v-model:open",
1825
+ "управление фокусом и клавиатурная навигация",
1826
+ "адаптивный дизайн с оптимизацией для мобильных"
1827
+ ]
1828
+ },
1829
+ import: ["import { ref } from 'vue'"],
1830
+ render: "\n <DesignComponent v-bind=\"args\">\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Open Modal</button>\n </template>\n\n <template #default>\n <h4>Modal Component Overview</h4>\n <p>Modal is a specialized wrapper around the Window component with preset adaptive mode set to 'modal'. It provides a simplified API for creating centered modal dialogs without needing to configure positioning and adaptive behavior manually.</p>\n\n <p>The component automatically handles common modal dialog scenarios including confirmations, forms, alerts, and content previews. It manages focus, scroll behavior, and keyboard navigation to ensure accessibility and optimal user experience across different devices and screen sizes.</p>\n\n <h4>Best Practices</h4>\n <p>Use modals sparingly and only for content that genuinely requires immediate attention. Ensure modals have clear actions (confirm/cancel), provide easy ways to dismiss them, and avoid nesting modals within modals. The component should be large enough to display content comfortably but not so large that it overwhelms the screen.</p>\n\n <h4>Relationship with Window</h4>\n <p>Modal is essentially Window with <code>adaptive=\"modal\"</code> preset, simplifying the usage for standard dialog scenarios. All Window properties, slots, and events are available in a Modal component.</p>\n </template>\n </DesignComponent>\n ",
1831
+ stories: [{
1832
+ id: "ModalVModel",
1833
+ name: {
1834
+ en: "Two-way binding (v-model)",
1835
+ ru: "Двусторонняя привязка (v-model)"
1836
+ },
1837
+ setup: "\n return {\n open: ref(false)\n }\n ",
1838
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"open = true\">Open via v-model ({{ open }})</button>\n </div>\n\n <DesignComponent v-model:open=\"open\">\n <div class=\"wiki-storybook-item--padding\">Your content here</div>\n </DesignComponent>\n </div>\n "
1839
+ }, {
1840
+ id: "ModalAllSlots",
1841
+ name: {
1842
+ en: "All slots demonstration",
1843
+ ru: "Демонстрация всех слотов"
1844
+ },
1845
+ template: "\n <DesignComponent>\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Open Modal with All Slots</button>\n </template>\n\n <template #title>Title slot</template>\n <template #default>Default slot</template>\n <template #footer>Footer slot</template>\n </DesignComponent>\n "
1846
+ }],
1847
+ documentation: {
1848
+ body: "\n<StorybookDescriptions componentName={'Modal'} type={'modal'}/>\n<StorybookDescriptions componentName={'Window'} type={'v-model'}/>\n<Canvas of={Component.ModalVModel}/>\n\n<StorybookDescriptions componentName={'Modal'} type={'differences'}/>\n ",
1849
+ events: "\n<StorybookDescriptions componentName={'Window'} type={'event.window'}/>\n<StorybookDescriptions componentName={'Event'} type={'bars'}/>\n<StorybookDescriptions componentName={'Event'} type={'actions'}/>\n ",
1850
+ expose: "\n<StorybookDescriptions componentName={'Window'} type={'expose'}/>\n ",
1851
+ slots: "\n<Canvas of={Component.ModalAllSlots}/>\n<StorybookDescriptions componentName={'Window'} type={'slots'}/>\n "
1852
+ },
1853
+ ai: {
1854
+ render: "\n<div :class=\"classDemo.item\">\n <Modal embedded open v-bind=\"args\">\n <template #default>\n <p>This is a modal dialog.</p>\n </template>\n </Modal>\n</div>\n ",
1855
+ description: "\nSimplified wrapper over the Window component pre-configured for centered modal dialogs. Provides a high-level API for typical interaction patterns like confirmation prompts, info alerts, and data entry forms.\nFeatures automatic overlay management, background interaction blocking, and body scroll locking. Includes built-in focus trapping, Esc key dismissal, and responsive layout optimization (adaptive=\"modal\") for consistent mobile and desktop UX.\nControlled via the v-model:open prop and utilizes #control, #title, and #footer slots for modular layout. Use for critical user notifications, blocking confirmation steps, or focused sub-tasks requiring immediate attention.\n "
1856
+ }
1857
+ },
1858
+ {
1859
+ name: "MotionAxis",
1860
+ description: {
1861
+ en: "A component for organizing transitions between elements (slides). Allows animating content changes along X, Y, Z axes with slide effects. Supports automatic animation direction detection, container height management, and lazy loading (DOM).",
1862
+ ru: "Компонент для организации переходов между элементами (слайдами). Позволяет анимировать смену контента по осям X, Y, Z с эффектами сдвига. Поддерживает автоматическое определение направления анимации, управление высотой контейнера и ленивую загрузку (DOM)."
1863
+ },
1864
+ possibilities: {
1865
+ en: [
1866
+ "Slide transition animation along X, Y, Z axes",
1867
+ "Automatic or manual direction control (next/back)",
1868
+ "Smooth container height animation to fit content",
1869
+ "Slide lifecycle management in DOM (inDom, inDomSlide)",
1870
+ "Slot support for each slide"
1871
+ ],
1872
+ ru: [
1873
+ "Анимация смены слайдов по осям X, Y, Z",
1874
+ "Автоматическое или ручное управление направлением (вперед/назад)",
1875
+ "Плавная анимация высоты контейнера под контент",
1876
+ "Управление жизненным циклом слайдов в DOM (inDom, inDomSlide)",
1877
+ "Поддержка слотов для каждого слайда"
1878
+ ]
1879
+ },
1880
+ render: "\n <DesignComponent v-bind=\"args\">\n <template #slide1>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae elit libero, a pharetra augue.</p>\n </div>\n </template>\n <template #slide2>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <p>Curabitur blandit tempus porttitor. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Cras mattis consectetur purus sit amet fermentum.</p>\n </div>\n </template>\n <template #slide3>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Maecenas sed diam eget risus varius blandit sit amet non magna. Vestibulum id ligula porta felis euismod semper. Donec id elit non mi porta gravida at eget metus. Aenean lacinia bibendum nulla sed consectetur.</p>\n <p>Donec ullamcorper nulla non metus auctor fringilla. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.</p>\n </div>\n </template>\n </DesignComponent>\n",
1881
+ import: ["import { ref } from 'vue'"],
1882
+ stories: [
1883
+ {
1884
+ id: "MotionAxisBasic",
1885
+ name: {
1886
+ en: "Basic Usage",
1887
+ ru: "Базовое использование"
1888
+ },
1889
+ setup: "\n const selected = ref('slide1')\n return { selected }\n ",
1890
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"selected = 'slide1'\">1</button>\n <button class=\"wiki-storybook-button\" @click=\"selected = 'slide2'\">2</button>\n <button class=\"wiki-storybook-button\" @click=\"selected = 'slide3'\">3</button>\n </div>\n\n <DesignComponent :selected=\"selected\">\n <template #slide1>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <p>Short content.</p>\n </div>\n </template>\n <template #slide2>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <p>Medium length content. This slide has a bit more text to demonstrate the transition.</p>\n </div>\n </template>\n <template #slide3>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n <p>Long content. This slide contains significantly more text to demonstrate the smooth height animation capabilities of the MotionAxis component. It should expand the container height when active.</p>\n <p>Additional paragraph for extra height.</p>\n </div>\n </template>\n </DesignComponent>\n </div>\n "
1891
+ },
1892
+ {
1893
+ id: "MotionAxisScroll",
1894
+ name: {
1895
+ en: "Scroll Management",
1896
+ ru: "Управление скроллом"
1897
+ },
1898
+ setup: "\n const selected = ref('short')\n return { selected }\n ",
1899
+ template: "\n <div class=\"wiki-storybook-flex-column design-component__scroll\">\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"selected = 'short'\">short</button>\n <button class=\"wiki-storybook-button\" @click=\"selected = 'long'\">long</button>\n </div>\n\n <DesignComponent :selected=\"selected\">\n <template #short>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n Short content\n </div>\n </template>\n <template #long>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n Long content that causes scrolling.<br>\n Scroll down to see more.<br>\n ...<br>...<br>...<br>...<br>...<br>...<br>...<br>...<br>...<br>...<br>\n End of content.\n </div>\n </template>\n </DesignComponent>\n </div>\n "
1900
+ },
1901
+ {
1902
+ id: "MotionAxisVModel",
1903
+ name: {
1904
+ en: "Two-way binding (v-model)",
1905
+ ru: "Двусторонняя привязка (v-model)"
1906
+ },
1907
+ setup: "\n const selected = ref('slide1')\n return { selected }\n ",
1908
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex-align-center\">\n <span>Current value: {{ selected }}</span>\n <button class=\"wiki-storybook-button\" @click=\"selected = 'slide1'\">Select Slide 1</button>\n <button class=\"wiki-storybook-button\" @click=\"selected = 'slide2'\">Select Slide 2</button>\n <button class=\"wiki-storybook-button\" @click=\"selected = 'slide3'\">Select Slide 3</button>\n </div>\n\n <DesignComponent v-model:selected=\"selected\">\n <template #slide1>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n Slide 1\n </div>\n </template>\n <template #slide2>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n Slide 2\n </div>\n </template>\n <template #slide3>\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding\">\n Slide 3\n </div>\n </template>\n </DesignComponent>\n </div>\n "
1909
+ }
1910
+ ],
1911
+ documentation: {
1912
+ body: "\n<StorybookDescriptions componentName={'MotionAxis'} type={'motionAxis'}/>\n<Canvas of={Component.MotionAxisBasic}/>\n\n<StorybookDescriptions componentName={'MotionAxis'} type={'classes'}/>\n<Canvas of={Component.MotionAxisScroll}/>\n\n<StorybookDescriptions componentName={'MotionAxis'} type={'v-model'}/>\n<Canvas of={Component.MotionAxisVModel}/>\n ",
1913
+ events: "\n<StorybookDescriptions componentName={'MotionAxis'} type={'events'}/>\n ",
1914
+ expose: "\n<StorybookDescriptions componentName={'MotionAxis'} type={'expose'}/>\n ",
1915
+ slots: "\n<StorybookDescriptions componentName={'MotionAxis'} type={'slots'}/>\n "
1916
+ },
1917
+ ai: { description: "\nLow-level layout component for animating transitions between multiple content areas (slides) along X, Y, or Z axes. Ideal for multi-step wizards, tabbed content, and gallery-like interfaces requiring direction-aware motion.\nFeatures automated animation direction detection (next/back), smooth container height transitions, and lazy loading support to manage slide life-cycles in the DOM. Supports horizontal slide, vertical flip, and depth-based transitions with customizable speed and easing.\nControlled via the selected prop or v-model:selected, utilizing numbered slide slots (#slide1, #slide2, etc.) for content distribution. Use when content needs to transition within a fixed or dynamic container while maintaining high visual polish and spatial orientation.\n " }
1918
+ },
1919
+ {
1920
+ name: "MotionTransform",
1921
+ description: {
1922
+ en: "Low-level motion system that manages element transforms, state transitions, and interaction events for contextual UI like windows and menus",
1923
+ ru: "Низкоуровневая система анимаций, управляющая трансформациями элементов, переходами состояний и событиями взаимодействия для контекстных интерфейсов (окна, меню)"
1924
+ },
1925
+ possibilities: {
1926
+ en: [
1927
+ "centralized state for open/show/teleport with computed accessors",
1928
+ "size measurement and CSS variable updates for smooth animations",
1929
+ "teleport control for window-like behavior and off-DOM rendering",
1930
+ "click/close/auto-close handling with ignore areas",
1931
+ "programmatic API for open/close/toggle and state transitions",
1932
+ "designed to be embedded into higher-level components (Window, Dropdown, etc.)"
1933
+ ],
1934
+ ru: [
1935
+ "централизованное состояние open/show/teleport с вычисляемыми аксессорами",
1936
+ "измерение размеров и обновление CSS‑переменных для плавных анимаций",
1937
+ "управление телепортацией для «оконного» поведения и рендера вне DOM",
1938
+ "обработка кликов/закрытия/автозакрытия с зонами игнорирования",
1939
+ "программный API для open/close/toggle и переходов состояний",
1940
+ "предназначена для встраивания в компоненты верхнего уровня (Window, Dropdown и т. п.)"
1941
+ ]
1942
+ },
1943
+ render: "\n <DesignComponent v-bind=\"args\">\n <template #head>\n <div class=\"wiki-storybook-item--padding\">\n <h3>MotionTransform Demo</h3>\n <p>Interactive demonstration of the MotionTransform system - a foundational utility for window-like behaviors and contextual UI interactions.</p>\n </div>\n </template>\n\n <template #body=\"{classes}\">\n <div class=\"wiki-storybook-item--padding\">\n <h4>Motion Transform System</h4>\n <p>MotionTransform provides the foundational motion and state management system that powers interactive UI components like windows, dropdowns, and contextual menus. It handles element transforms, animation states, and user interaction events with smooth animations.</p>\n\n <h4>Core Components</h4>\n <p>The motion system consists of specialized managers: State handles open/show/teleport flags, Element provides DOM helpers, Size manages CSS variables for animations, Event coordinates click handling, and Go offers programmatic control methods.</p>\n\n <h4>Developer Integration</h4>\n <p>MotionTransform is designed as a low-level utility for component developers. It provides APIs for managing UI behaviors while handling DOM manipulation and animation orchestration behind the scenes.</p>\n <div class=\"wiki-storybook-flex\">\n <button :class=\"classes.close\" class=\"wiki-storybook-button wiki-storybook-button--text\">Cancel</button>\n <button class=\"wiki-storybook-button\">Confirm</button>\n </div>\n </div>\n </template>\n </DesignComponent>\n ",
1944
+ import: ["import { ref } from 'vue'"],
1945
+ stories: [
1946
+ {
1947
+ id: "MotionTransformAnimationHeadPosition",
1948
+ name: {
1949
+ en: "Head position animation",
1950
+ ru: "Анимация позиции заголовка"
1951
+ },
1952
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent animationHeadPosition=\"top\">\n <template #head>\n <div class=\"wiki-storybook-item--padding\">\n <h4>animationHeadPosition: top</h4>\n <p>Click to open — Head stays at the top during transition</p>\n </div>\n </template>\n <template #body>\n <div class=\"wiki-storybook-item--padding\">\n <h5>Top Position Animation</h5>\n <p>With <code>animationHeadPosition=\"top\"</code>, the head element maintains its position at the top of the container throughout the entire show/hide animation sequence.</p>\n <p>This behavior is ideal for interfaces where the header serves as a stable reference point, such as dropdown menus, navigation panels, or content that expands downward from a fixed trigger.</p>\n <p>The animation creates a smooth vertical expansion effect while keeping the header visually anchored, providing users with a clear understanding of the content's origin point.</p>\n <ul>\n <li>Header remains stationary during animation</li>\n <li>Content expands/collapses below the header</li>\n <li>Provides stable visual reference point</li>\n <li>Best for downward-expanding interfaces</li>\n </ul>\n </div>\n </template>\n </DesignComponent>\n\n <DesignComponent animationHeadPosition=\"toBottom\">\n <template #head>\n <div class=\"wiki-storybook-item--padding\">\n <h4>animationHeadPosition: toBottom</h4>\n <p>Click to open — Head moves toward the bottom with content</p>\n </div>\n </template>\n <template #body>\n <div class=\"wiki-storybook-item--padding\">\n <h5>Bottom Movement Animation</h5>\n <p>When using <code>animationHeadPosition=\"toBottom\"</code>, the head element travels together with the content during the animation, creating a unified motion experience.</p>\n <p>This approach is particularly effective for accordion-style interfaces, collapsible sections, or any scenario where the header and content should move as a cohesive unit.</p>\n <p>The animation provides a more dynamic feeling, as both header and content participate in the motion, creating a sense of the entire section expanding or contracting as one entity.</p>\n <ul>\n <li>Header and content move together</li>\n <li>Creates unified motion experience</li>\n <li>Ideal for accordion-style interfaces</li>\n <li>Provides cohesive visual feedback</li>\n </ul>\n </div>\n </template>\n </DesignComponent>\n </div>\n "
1953
+ },
1954
+ {
1955
+ id: "MotionTransformIgnore",
1956
+ name: {
1957
+ en: "Ignore zones",
1958
+ ru: "Зоны игнорирования"
1959
+ },
1960
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent ignoreSelector=\".mt-ignore\">\n <template #head>\n <div class=\"wiki-storybook-item--padding\">\n <h4>Ignore zones behavior</h4>\n <p>This text acts as the trigger that opens the content area</p>\n </div>\n </template>\n <template #body>\n <div class=\"wiki-storybook-item--padding\">\n <p>Clicks on elements matching <code>.mt-ignore</code> are not treated as outside and won’t trigger auto close.</p>\n <p>This is useful for trigger buttons, helper controls, and nested interactive areas that must remain active without closing the window.</p>\n <p>Try it: click any button with <code>.mt-ignore</code> outside or inside — the window stays open; clicks on other outside areas will close it.</p>\n <p>Use <code>ignore</code> when you have a concrete DOM element, and <code>ignoreSelector</code> when zones are multiple or dynamic.</p>\n <p>Keep selectors specific to avoid accidental matches and unintended auto‑close blocking.</p>\n <ul>\n <li>Pattern: a trigger with class <code>.mt-ignore</code> outside and inside the window</li>\n <li>Expectation: clicks on the trigger are ignored by outside‑check logic, the window doesn’t close</li>\n </ul>\n </div>\n </template>\n </DesignComponent>\n\n <div class=\"wiki-storybook-item wiki-storybook-item--auto wiki-storybook-item--padding mt-ignore\">\n <h5>External ignore zone</h5>\n <p>This area has class <code>.mt-ignore</code> and demonstrates how clicks here won't close the window below.</p>\n <button class=\"wiki-storybook-button\">Ignored button</button>\n </div>\n </div>\n "
1961
+ },
1962
+ {
1963
+ id: "MotionTransformVModel",
1964
+ name: {
1965
+ en: "Two-way binding (v-model)",
1966
+ ru: "Двусторонняя привязка (v-model)"
1967
+ },
1968
+ setup: "\n return {\n open: ref(false)\n }\n ",
1969
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"open = !open\">Toggle ({{ open }})</button>\n </div>\n \n <DesignComponent v-model:open=\"open\">\n <template #head>\n <div class=\"wiki-storybook-item--padding\">\n <h4>v-model controlled</h4>\n <p>This component's visibility is controlled by an external ref via v-model:open.</p>\n </div>\n </template>\n <template #body>\n <div class=\"wiki-storybook-item--padding\">\n <p>Content is {{ open ? 'visible' : 'hidden' }}</p>\n <p>Using <code>v-model:open</code> provides a clean and declarative way to manage the component's state from the parent. It simplifies the logic by removing the need for manual event handling (<code>@update:open</code>) and prop binding (<code>:open</code>).</p>\n <p>This two-way binding is ideal for scenarios where the parent component needs to know about and control the visibility of the MotionTransform component, such as in complex forms or coordinated UI interactions.</p>\n </div>\n </template>\n </DesignComponent>\n </div>\n "
1970
+ }
1971
+ ],
1972
+ documentation: {
1973
+ body: "\n<StorybookDescriptions componentName={'MotionTransform'} type={'motionTransform'}/>\n<StorybookDescriptions componentName={'MotionTransform'} type={'classes'}/>\n<StorybookDescriptions componentName={'MotionTransform'} type={'animationHeadPosition'}/>\n<Canvas of={Component.MotionTransformAnimationHeadPosition}/>\n<StorybookDescriptions componentName={'MotionTransform'} type={'ignore'}/>\n<Canvas of={Component.MotionTransformIgnore}/>\n<StorybookDescriptions componentName={'MotionTransform'} type={'v-model'}/>\n<Canvas of={Component.MotionTransformVModel}/>\n ",
1974
+ events: "\n<StorybookDescriptions componentName={'MotionTransform'} type={'events'}/>\n ",
1975
+ expose: "\n<StorybookDescriptions componentName={'MotionTransform'} type={'expose'}/>\n ",
1976
+ slots: "\n<StorybookDescriptions componentName={'MotionTransform'} type={'slots'}/>\n "
1977
+ },
1978
+ ai: {
1979
+ render: "\n<div :class=\"classDemo.item\">\n <MotionTransform :auto-close=\"false\" v-bind=\"args\">\n <template #head>\n <button class=\"wiki-storybook-button\">Toggle Content</button>\n </template>\n <template #body>\n <div class=\"wiki-storybook-item--padding\">\n <p>Expandable content goes here.</p>\n </div>\n </template>\n </MotionTransform>\n</div>\n ",
1980
+ description: "\nLow-level motion engine designed for complex component transitions like windows, dropdowns, and collapsible sections. Provides a unified system for managing element transforms, off-DOM teleportation, and interaction patterns (click-outside, etc.).\nFeatures dynamic size measurement with automatic CSS variable updates for smooth hardware-accelerated animations. Includes a robust state manager (open/show/teleport), focus trapping, and customizable interaction ignoring areas for triggers.\nControlled via the v-model:open prop and utilizes #head and #body slots for layout. Use as a foundational utility when building custom interactive components requiring sophisticated motion, state transitions, and high-performance DOM manipulation.\n "
1981
+ }
1982
+ },
1983
+ {
1984
+ name: "Page",
1985
+ description: {
1986
+ en: "A top-level semantic container component representing the main content of a document. It uses the <main> tag by default and supports high-level headers and descriptions.",
1987
+ ru: "Семантический компонент-контейнер верхнего уровня, представляющий основное содержимое документа. По умолчанию использует тег <main> и поддерживает заголовки высокого уровня."
1988
+ },
1989
+ possibilities: {
1990
+ en: [
1991
+ "semantic wrapper for main content using <main> tag",
1992
+ "support for main titles (h1 by default), labels, descriptions, and captions",
1993
+ "customizable layout and spacing",
1994
+ "support for icons",
1995
+ "flexible content organization"
1996
+ ],
1997
+ ru: [
1998
+ "семантическая обертка для основного контента с использованием тега <main>",
1999
+ "поддержка главных заголовков (h1 по умолчанию), меток, описаний и подписей",
2000
+ "настраиваемый макет и отступы",
2001
+ "поддержка иконок",
2002
+ "гибкая организация контента"
2003
+ ]
2004
+ },
2005
+ import: [],
2006
+ render: "\n <DesignComponent v-bind=\"args\">\n <p>\n The Page component is designed to wrap the unique content of a document.\n It defaults to using the <code>&lt;main&gt;</code> HTML tag, ensuring that the primary content is correctly identified by assistive technologies and search engines.\n </p>\n <p>\n It provides a comprehensive set of features for page-level content presentation, including headlines, labels, descriptions, and icons.\n The default tag for the headline is set to <code>&lt;h1&gt;</code>, establishing the top-level heading for the page.\n </p>\n <p>\n Use Page to encapsulate the core content of your view, separating it from repeated elements like navigation bars or footers.\n </p>\n </DesignComponent>\n ",
2007
+ stories: [{
2008
+ id: "PageBasic",
2009
+ name: {
2010
+ en: "Basic",
2011
+ ru: "Базовые"
2012
+ },
2013
+ template: "\n <DesignComponent\n headline=\"User Dashboard\"\n label=\"Overview\"\n description=\"View your account analytics and recent activity.\"\n >\n <p>Welcome to your dashboard. Here you can find a summary of your performance and manage your account settings.</p>\n </DesignComponent>\n "
2014
+ }, {
2015
+ id: "PageSlots",
2016
+ name: {
2017
+ en: "Slots usage",
2018
+ ru: "Использование слотов"
2019
+ },
2020
+ template: "\n <DesignComponent>\n <template #default>Default slot</template>\n <template #headline>Headline slot</template>\n <template #label>Label slot</template>\n <template #description>Description slot</template>\n <template #caption>Caption slot</template>\n <template #trailing>Trailing slot</template>\n </DesignComponent>\n "
2021
+ }],
2022
+ documentation: {
2023
+ body: "\n<StorybookDescriptions componentName={'Page'} type={'block'}/>\n<Canvas of={Component.PageBasic}/>\n\n<StorybookDescriptions componentName={'Block'} type={'differences'}/>\n",
2024
+ slots: "\n<Canvas of={Component.PageSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n<StorybookDescriptions componentName={'Slot'} type={'headline'}/>\n<StorybookDescriptions componentName={'Slot'} type={'label'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n<StorybookDescriptions componentName={'Slot'} type={'caption'}/>\n<StorybookDescriptions componentName={'Slot'} type={'trailing'}/>\n",
2025
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'labelId'}/>\n<StorybookDescriptions componentName={'Expose'} type={'descriptionId'}/>\n"
2026
+ },
2027
+ ai: {
2028
+ render: "\n<div :class=\"classDemo.item\">\n <Page v-bind=\"args\">\n Main page content.\n </Page>\n</div>\n ",
2029
+ description: "\nTop-level structural container designed to wrap the primary content of a view or document. Serves as a semantic root (typically rendering a <main> tag) and establishes the high-level document hierarchy with standardized headers.\nFeatures a comprehensive header structure inherited from the Block component, including support for headlines (h1), labels (page titles), descriptions, and trailing action areas. Automatically manages spacing and layout consistency for page-level navigation and identity.\nControlled via headline, label, and icon props, with dedicated slots for content and actions (#default, #trailing). Use as the foundational wrapper for any route or unique screen to ensure accessibility and consistent information architecture.\n "
2030
+ }
2031
+ },
2032
+ {
2033
+ name: "Progress",
2034
+ description: {
2035
+ en: "Component for displaying progress of operations or loading states",
2036
+ ru: "Компонент для отображения прогресса операций или состояний загрузки"
2037
+ },
2038
+ possibilities: {
2039
+ en: [
2040
+ "linear and circular progress indicators",
2041
+ "determinate and indeterminate progress states",
2042
+ "customizable value and maximum values",
2043
+ "different positioning options (top, bottom, static)",
2044
+ "delay settings for showing and hiding",
2045
+ "dense and inverse styling variants",
2046
+ "point mode for minimal display"
2047
+ ],
2048
+ ru: [
2049
+ "линейные и круглые индикаторы прогресса",
2050
+ "детерминированные и неопределенные состояния прогресса",
2051
+ "настраиваемые значения прогресса и максимума",
2052
+ "различные варианты позиционирования (сверху, снизу, статично)",
2053
+ "настройки задержки для показа и скрытия",
2054
+ "компактный и инвертированный варианты стилизации",
2055
+ "точечный режим для минимального отображения"
2056
+ ]
2057
+ },
2058
+ render: "\n <div class=\"wiki-storybook-item wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <DesignComponent v-bind=\"args\"/>\n </div>\n ",
2059
+ import: ["import { ref } from 'vue'"],
2060
+ stories: [
2061
+ {
2062
+ id: "ProgressTypes",
2063
+ name: {
2064
+ en: "Types",
2065
+ ru: "Типы"
2066
+ },
2067
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Linear Progress</div>\n <DesignComponent visible indeterminate=\"type2\" linear position=\"static\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen\">\n <div class=\"wiki-storybook-item__label\">Circular Progress</div>\n <DesignComponent visible indeterminate=\"type2\" circular/>\n </div>\n </div>\n "
2068
+ },
2069
+ {
2070
+ id: "ProgressLinear",
2071
+ name: {
2072
+ en: "Linear Progress",
2073
+ ru: "Линейный прогресс"
2074
+ },
2075
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Value: 50</div>\n <DesignComponent visible linear position=\"static\" :value=\"50\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Point</div>\n <DesignComponent visible linear position=\"static\" point :value=\"75\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Position: bottom</div>\n <DesignComponent visible linear position=\"bottom\" :value=\"60\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Indeterminate: type1</div>\n <DesignComponent visible linear position=\"static\" indeterminate=\"type1\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Indeterminate: type2</div>\n <DesignComponent visible linear position=\"static\" indeterminate=\"type2\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Indeterminate: type3</div>\n <DesignComponent visible linear position=\"static\" indeterminate=\"type3\" />\n </div>\n </div>\n "
2076
+ },
2077
+ {
2078
+ id: "ProgressCircular",
2079
+ name: {
2080
+ en: "Circular Progress",
2081
+ ru: "Круглый прогресс"
2082
+ },
2083
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Basic</div>\n <DesignComponent visible circular :value=\"50\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Dense</div>\n <DesignComponent visible circular dense :value=\"75\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Indeterminate</div>\n <DesignComponent visible circular indeterminate=\"type1\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Dense Indeterminate</div>\n <DesignComponent visible circular dense indeterminate=\"type2\" />\n </div>\n </div>\n "
2084
+ },
2085
+ {
2086
+ id: "ProgressValues",
2087
+ name: {
2088
+ en: "Values",
2089
+ ru: "Значения"
2090
+ },
2091
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">value: 25, max: 100</div>\n <DesignComponent visible position=\"static\" :value=\"25\" :max=\"100\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">value: 75, max: 100</div>\n <DesignComponent visible position=\"static\" :value=\"75\" :max=\"100\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen\">\n <div class=\"wiki-storybook-item__label\">value: 50, max: 200</div>\n <DesignComponent visible circular :value=\"50\" :max=\"200\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen\">\n <div class=\"wiki-storybook-item__label\">value: 75, max: 100</div>\n <DesignComponent visible circular :value=\"75\" :max=\"200\"/>\n </div>\n </div>\n "
2092
+ },
2093
+ {
2094
+ id: "ProgressDelays",
2095
+ name: {
2096
+ en: "Delays",
2097
+ ru: "Задержки"
2098
+ },
2099
+ setup: "\n const visible = ref(false)\n return {\n visible,\n onClick: () => {\n visible.value = !visible.value\n }\n }\n ",
2100
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <button class=\"wiki-storybook-button\" @click=\"onClick\">Visible: {{ visible }}</button>\n </div>\n\n <div>\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Standard delays (360/200)</div>\n <DesignComponent :visible=\"visible\" circular position=\"static\" delay=\"360\" delayHide=\"200\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">Fast appearance (100/200)</div>\n <DesignComponent :visible=\"visible\" linear position=\"static\" delay=\"100\" delayHide=\"200\" />\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--lg wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">No delays (0/0)</div>\n <DesignComponent :visible=\"visible\" linear position=\"static\" delay=\"0\" delayHide=\"0\" />\n </div>\n </div>\n </div>\n </div>\n "
2101
+ }
2102
+ ],
2103
+ documentation: { body: "\n<StorybookDescriptions componentName={'Progress'} type={'progress'}/>\n<Canvas of={Component.ProgressTypes}/>\n\n<StorybookDescriptions componentName={'Progress'} type={'linear'}/>\n<Canvas of={Component.ProgressLinear}/>\n\n<StorybookDescriptions componentName={'Progress'} type={'circular'}/>\n<Canvas of={Component.ProgressCircular}/>\n\n<StorybookDescriptions componentName={'Progress'} type={'values'}/>\n<Canvas of={Component.ProgressValues}/>\n\n<StorybookDescriptions componentName={'Progress'} type={'delays'}/>\n<Canvas of={Component.ProgressDelays}/>\n " },
2104
+ ai: {
2105
+ render: "\n<div\n :class=\"classDemo.item\"\n style=\"position: relative; width: 64px; height: 40px;\"\n>\n <Progress v-bind=\"args\"/>\n</div>\n ",
2106
+ description: "\nStatus indicator for ongoing processes, supporting both linear and circular visual styles. Capable of representing determinate (known percentage) and indeterminate (loading) states with customizable delays for showing/hiding.\nFeatures horizontal bars (linear) and spinner rings (circular) with multiple indeterminate animation types. Includes advanced positioning (top, bottom, static), dense styling for compact UIs, and a point mode for minimal pulsating indicators.\nControlled via the visible, value, and indeterminate props, with support for custom min/max bounds. Use for page-level loading bars, button action feedback, or inline file upload progress.\n "
2107
+ }
2108
+ },
2109
+ {
2110
+ name: "Ripple",
2111
+ description: {
2112
+ en: "Component for creating a ripple wave effect on click interactions",
2113
+ ru: "Компонент для создания эффекта волны при взаимодействии с элементом"
2114
+ },
2115
+ possibilities: {
2116
+ en: [
2117
+ "it creates a ripple wave effect on click",
2118
+ "automatic positioning based on click coordinates",
2119
+ "disabling effect with `disabled` property",
2120
+ "Material Design inspired animation",
2121
+ "it works with any interactive elements"
2122
+ ],
2123
+ ru: [
2124
+ "создает эффект волны при клике",
2125
+ "автоматическое позиционирование по координатам клика",
2126
+ "отключение эффекта свойством `disabled`",
2127
+ "анимация в стиле Material Design",
2128
+ "работает с любыми интерактивными элементами"
2129
+ ]
2130
+ },
2131
+ render: "\n <div class=\"wiki-storybook-item wiki-storybook-item--widescreen wiki-storybook-item--center\">\n <DesignComponent v-bind=\"args\"/>\n </div>\n ",
2132
+ import: [],
2133
+ stories: [],
2134
+ documentation: { body: "\n<StorybookDescriptions componentName={'Ripple'} type={'ripple'}/>\n " },
2135
+ ai: {
2136
+ render: "\n<div\n :class=\"classDemo.item\"\n style=\"position: relative; width: 64px; height: 48px;\"\n>\n <Ripple v-bind=\"args\"/>\n</div>\n ",
2137
+ description: "\nLow-level decorative utility that provides Material Design-style visual feedback on user interactions. Automatically generates a dynamic wave effect at the exact coordinates of a pointerdown event within its parent container.\nFeatures automated animation lifecycle management, including expansion, fade-out, and DOM cleanup. Inherits visual styling directly from the host element via currentColor and requires the parent to have relative positioning and hidden overflow to function correctly.\nPrimarily integrated within interactive components like Buttons, ListItems, and Cards; should generally not be manually implemented. Controlled via the disabled prop, serving as a subtle but high-polish affordance for touch and click actions.\n "
2138
+ }
2139
+ },
2140
+ {
2141
+ name: "Scrollbar",
2142
+ description: {
2143
+ en: "Custom scrollbar component for enhanced user experience",
2144
+ ru: "Компонент кастомного скроллбара для улучшения пользовательского опыта"
2145
+ },
2146
+ possibilities: {
2147
+ en: [
2148
+ "custom scrollbar styling and appearance",
2149
+ "dynamic divider lines based on scroll position",
2150
+ "static divider lines at top and bottom",
2151
+ "visibility control for scrolling behavior",
2152
+ "inverse divider behavior options",
2153
+ "hide all divider lines functionality"
2154
+ ],
2155
+ ru: [
2156
+ "кастомная стилизация и внешний вид скроллбара",
2157
+ "динамические разделительные линии в зависимости от позиции скролла",
2158
+ "статичные разделительные линии сверху и снизу",
2159
+ "управление видимостью для поведения прокрутки",
2160
+ "опции инвертированного поведения разделителей",
2161
+ "функция скрытия всех разделительных линий"
2162
+ ]
2163
+ },
2164
+ render: "\n <D1Scrollbar\n class=\"wiki-storybook-item--widescreen wiki-storybook-item--squared--sm\"\n v-bind=\"args\"\n >\n <div class=\"wiki-storybook-scrollbar-content\">\n <h3>Modern Web Interfaces and User Experience Design</h3>\n <p>In today's digital landscape, creating high-quality user interfaces has become a critical aspect of web application development. User interface components must not only be functional but also provide intuitive interaction patterns that enhance the overall user experience. The evolution of web technologies has enabled developers to create more sophisticated and engaging interfaces.</p>\n\n <p>Scrollbars play a particularly important role in content navigation and information architecture. They allow users to easily navigate through large volumes of information while maintaining context and orientation within the document structure. Modern scrollbars should be adaptive, responsive, and visually appealing while providing consistent behavior across different platforms and devices.</p>\n\n <h4>Principles of Effective Design Implementation</h4>\n <p>Effective scrollbar design takes into account multiple factors ranging from performance optimization to accessibility compliance. It's essential to ensure smooth animations, proper handling of various input devices, and comprehensive keyboard navigation support. Cross-browser compatibility remains a top priority, especially when dealing with custom scrollbar implementations that need to work consistently across different rendering engines.</p>\n\n <p>Users expect scrollbars to work predictably and uniformly throughout all parts of an application. This requires thorough testing and optimization for various usage scenarios, including mobile devices, desktop computers, and touch-enabled interfaces. The component must handle edge cases gracefully and provide appropriate feedback for user interactions.</p>\n\n <h4>Technical Implementation Considerations</h4>\n <p>When developing scrollbar components, it's crucial to consider rendering performance, especially when working with large datasets or dynamically generated content. Content virtualization, lazy loading strategies, and DOM operation optimization help ensure smooth performance even on less powerful devices. Memory management becomes particularly important in single-page applications where components may be mounted and unmounted frequently.</p>\n\n <p>Modern frameworks provide numerous tools for creating customizable scrollbars, but it's important to find the right balance between functionality and ease of use. The component should be easily integrable into existing projects while supporting various configuration options and customization possibilities. API design should be intuitive and follow established patterns within the framework ecosystem.</p>\n\n <h4>Future Trends and Accessibility</h4>\n <p>The future of web development is moving towards creating more inclusive and accessible interfaces, where every element, including scrollbars, contributes to improving the overall user experience. This includes support for screen readers, high contrast modes, and reduced motion preferences. Progressive enhancement ensures that the scrollbar functionality works across all user scenarios.</p>\n\n <p>Emerging technologies like CSS container queries and new scrolling APIs continue to expand the possibilities for creating more sophisticated scrolling experiences. The integration of these technologies with existing design systems requires careful planning and consideration of backward compatibility.</p>\n </div>\n </D1Scrollbar>\n ",
2165
+ import: [],
2166
+ stories: [],
2167
+ documentation: {
2168
+ body: "\n<StorybookDescriptions componentName={'Scrollbar'} type={'scrollbar'}/>\n ",
2169
+ events: "\n<StorybookDescriptions componentName={'Scrollbar'} type={'emits'}/>\n "
2170
+ },
2171
+ ai: {
2172
+ render: "\n<div :class=\"classDemo.item\">\n <Scrollbar v-bind=\"args\" style=\"height: 128px\">\n <h3>Modern Web Interfaces and User Experience Design</h3>\n <p>In today's digital landscape, creating high-quality user\n interfaces has become a critical aspect of web application development.\n User interface components must not only be functional but also provide\n intuitive interaction patterns that enhance the overall user experience.\n The evolution of web technologies has enabled developers to create more\n sophisticated and engaging interfaces.</p>\n\n <p>Scrollbars play a particularly important role in content navigation\n and information architecture. They allow users to easily navigate through\n large volumes of information while maintaining context and orientation within\n the document structure. Modern scrollbars should be adaptive, responsive,\n and visually appealing while providing consistent behavior across different\n platforms and devices.</p>\n\n <h4>Principles of Effective Design Implementation</h4>\n <p>Effective scrollbar design takes into account multiple factors ranging\n from performance optimization to accessibility compliance. It's essential\n to ensure smooth animations, proper handling of various input devices, and\n comprehensive keyboard navigation support. Cross-browser compatibility remains\n a top priority, especially when dealing with custom scrollbar implementations\n that need to work consistently across different rendering engines.</p>\n\n <p>Users expect scrollbars to work predictably and uniformly throughout\n all parts of an application. This requires thorough testing and optimization\n for various usage scenarios, including mobile devices, desktop computers,\n and touch-enabled interfaces. The component must handle edge cases gracefully\n and provide appropriate feedback for user interactions.</p>\n </Scrollbar>\n</div>\n ",
2173
+ description: "\nStructural container that provides custom scrolling behavior and visual status indicators (borders/dividers) based on content overflow. Essential for maintaining spatial context in fixed-height areas like menus, modals, and sidebars.\nFeatures dynamic scroll position detection to show/hide top and bottom dividers based on visibility of content edges. Supports custom border styling, inverse divider logic, and specialized visibility controls for different scroll states.\nControlled via the tag and divider props, requiring a defined height or max-height to enable active scrolling. Use as a base wrapper for any dense content block requiring clear visual cues that more data is available above or below.\n "
2174
+ }
2175
+ },
2176
+ {
2177
+ name: "Section",
2178
+ description: {
2179
+ en: "A semantic container component designed to group related content with support for headers, descriptions, and flexible layout options. It uses the <section> tag by default.",
2180
+ ru: "Семантический компонент-контейнер, предназначенный для группировки связанного контента с поддержкой заголовков, описаний и гибких настроек макета. По умолчанию использует тег <section>."
2181
+ },
2182
+ possibilities: {
2183
+ en: [
2184
+ "semantic grouping of content using <section> tag",
2185
+ "support for titles (h2 by default), labels, descriptions, and captions",
2186
+ "customizable layout and spacing",
2187
+ "support for icons",
2188
+ "flexible content organization"
2189
+ ],
2190
+ ru: [
2191
+ "семантическая группировка контента с использованием тега <section>",
2192
+ "поддержка заголовков (h2 по умолчанию), меток, описаний и подписей",
2193
+ "настраиваемый макет и отступы",
2194
+ "поддержка иконок",
2195
+ "гибкая организация контента"
2196
+ ]
2197
+ },
2198
+ import: [],
2199
+ render: "\n <DesignComponent v-bind=\"args\">\n <p>\n The Section component is a fundamental building block for structuring web pages.\n It defaults to using the <code>&lt;section&gt;</code> HTML tag, making it semantically appropriate for grouping thematic content.\n </p>\n <p>\n It provides a rich set of features for content presentation, including headlines, labels, descriptions, and icons.\n The default tag for the headline is set to <code>&lt;h2&gt;</code>, which fits the typical document outline structure.\n </p>\n <p>\n Use Section to divide your page into distinct thematic areas, improving both the visual structure and the accessibility of your application.\n </p>\n </DesignComponent>\n ",
2200
+ stories: [{
2201
+ id: "SectionBasic",
2202
+ name: {
2203
+ en: "Basic",
2204
+ ru: "Базовые"
2205
+ },
2206
+ template: "\n <DesignComponent\n headline=\"User Profile Settings\"\n label=\"Personalization\"\n description=\"Customize your experience and notification preferences.\"\n >\n <p>This section allows you to manage your personal display settings, theme selection, and language preferences. Changes are saved automatically as you update them.</p>\n </DesignComponent>\n "
2207
+ }, {
2208
+ id: "SectionSlots",
2209
+ name: {
2210
+ en: "Slots usage",
2211
+ ru: "Использование слотов"
2212
+ },
2213
+ template: "\n <DesignComponent>\n <template #default>Default slot</template>\n <template #headline>Headline slot</template>\n <template #label>Label slot</template>\n <template #description>Description slot</template>\n <template #caption>Caption slot</template>\n <template #trailing>Trailing slot</template>\n </DesignComponent>\n "
2214
+ }],
2215
+ documentation: {
2216
+ body: "\n<StorybookDescriptions componentName={'Section'} type={'block'}/>\n<Canvas of={Component.SectionBasic}/>\n\n<StorybookDescriptions componentName={'Block'} type={'differences'}/>\n",
2217
+ slots: "\n<Canvas of={Component.SectionSlots}/>\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n<StorybookDescriptions componentName={'Slot'} type={'headline'}/>\n<StorybookDescriptions componentName={'Slot'} type={'label'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n<StorybookDescriptions componentName={'Slot'} type={'caption'}/>\n<StorybookDescriptions componentName={'Slot'} type={'trailing'}/>\n",
2218
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'labelId'}/>\n<StorybookDescriptions componentName={'Expose'} type={'descriptionId'}/>\n"
2219
+ },
2220
+ ai: {
2221
+ render: "\n<div :class=\"classDemo.item\">\n <Section v-bind=\"args\">\n Content of the section.\n </Section>\n</div>\n ",
2222
+ description: "\nStructural component used to divide a page into distinct thematic areas, serving as a semantic alias for the Block component. Provides a standardized header structure for grouping related content within a coherent layout.\nFeatures a flexible header with support for icons, labels (titles), captions, and trailing action areas. Inherits all layout and styling capabilities from the Block component, including support for custom semantic tags (defaulting to <section>) and high-level category headlines.\nControlled via headline, label, and icon props, with dedicated slots for primary content and secondary actions. Use to logically organize and category-label information within the flow of a Page or complex Dashboard.\n "
2223
+ }
2224
+ },
2225
+ {
2226
+ name: "Select",
2227
+ description: {
2228
+ en: "Complete select dropdown control combining Field, Menu, SelectValue and Input for sophisticated selection interface",
2229
+ ru: "Полнофункциональный элемент выбора из выпадающего списка, объединяющий Field, Menu, SelectValue и Input для продвинутого интерфейса выбора"
2230
+ },
2231
+ possibilities: {
2232
+ en: [
2233
+ "single or multiple value selection",
2234
+ "built-in search and filtering capabilities",
2235
+ "editable selected value mode (editValue)",
2236
+ "AJAX data loading with caching support",
2237
+ "filter mode for real-time option filtering",
2238
+ "validation with standard Field features",
2239
+ "keyboard navigation and accessibility",
2240
+ "custom option list via slots or data",
2241
+ "icon support for dropdown arrow and search",
2242
+ "auto-close control for multiple selection",
2243
+ "integration with all Field component features (label, counter, messages, icons)"
2244
+ ],
2245
+ ru: [
2246
+ "выбор одиночного или множественных значений",
2247
+ "встроенный поиск и возможности фильтрации",
2248
+ "режим редактирования выбранного значения (editValue)",
2249
+ "AJAX загрузка данных с поддержкой кеширования",
2250
+ "режим фильтрации для реального времени",
2251
+ "валидация со стандартными функциями Field",
2252
+ "клавиатурная навигация и доступность",
2253
+ "пользовательский список опций через слоты или данные",
2254
+ "поддержка иконок для стрелки выпадающего списка и поиска",
2255
+ "управление автозакрытием для множественного выбора",
2256
+ "интеграция со всеми возможностями компонента Field (подпись, счётчик, сообщения, иконки)"
2257
+ ]
2258
+ },
2259
+ import: ["import { ref } from 'vue'"],
2260
+ render: "\n <DesignComponent v-bind=\"args\" />\n ",
2261
+ stories: [
2262
+ {
2263
+ id: "SelectBasic",
2264
+ name: {
2265
+ en: "Basic",
2266
+ ru: "Базовые"
2267
+ },
2268
+ setup: "\n const options = ref([\n {label: 'JavaScript', value: 'js'},\n {label: 'TypeScript', value: 'ts'},\n {label: 'Python', value: 'py'},\n {label: 'Java', value: 'java'},\n {label: 'C++', value: 'cpp'},\n {label: 'Ruby', value: 'rb'},\n {label: 'Go', value: 'go'},\n {label: 'PHP', value: 'php'}\n ])\n\n return { options }\n ",
2269
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent\n type=\"select\"\n label=\"Standard select\"\n placeholder=\"Select option\"\n :option=\"options\"\n />\n <DesignComponent\n type=\"select\"\n label=\"With search\"\n placeholder=\"Search...\"\n showSearch\n :option=\"options\"\n />\n <DesignComponent\n type=\"select\"\n label=\"With filter\"\n placeholder=\"Type to filter\"\n showSearch\n filterMode\n :option=\"options\"\n />\n <DesignComponent\n type=\"select\"\n label=\"Edit value\"\n placeholder=\"Select or type\"\n editValue\n filterMode\n :option=\"options\"\n />\n <DesignComponent\n type=\"select\"\n label=\"With arrows\"\n placeholder=\"Select option\"\n arrow=\"carousel\"\n :option=\"options\"\n />\n </div>\n "
2270
+ },
2271
+ {
2272
+ id: "SelectVModel",
2273
+ name: {
2274
+ en: "Two-way binding (v-model)",
2275
+ ru: "Двусторонняя привязка (v-model)"
2276
+ },
2277
+ setup: "\n const valueSingle = ref('option2')\n const valueMultiple = ref(['option1', 'option3'])\n const options = [\n { label: 'First option', value: 'option1' },\n { label: 'Second option', value: 'option2' },\n { label: 'Third option', value: 'option3' }\n ]\n\n return { valueSingle, valueMultiple, options }\n ",
2278
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex-align-center\">\n <span>Value: <strong>{{ valueSingle }}</strong></span>\n <button class=\"wiki-storybook-button\" @click=\"valueSingle = 'option1'\">option 1</button>\n <button class=\"wiki-storybook-button\" @click=\"valueSingle = 'option2'\">option 2</button>\n <button class=\"wiki-storybook-button\" @click=\"valueSingle = 'option3'\">option 3</button>\n </div>\n\n <DesignComponent\n v-model=\"valueSingle\"\n type=\"select\"\n label=\"Single select\"\n :option=\"options\"\n />\n\n <div class=\"wiki-storybook-flex-align-center\">\n <span>Value: <strong>{{ valueMultiple }}</strong></span>\n <button class=\"wiki-storybook-button\" @click=\"valueMultiple = ['option1', 'option2']\">option 1, 2</button>\n <button class=\"wiki-storybook-button wiki-storybook-button--warning\" @click=\"valueMultiple = []\">Clear</button>\n </div>\n\n <DesignComponent\n v-model=\"valueMultiple\"\n type=\"select\"\n label=\"Multiple select\"\n multiple\n :option=\"options\"\n />\n </div>\n "
2279
+ },
2280
+ {
2281
+ id: "SelectSkeleton",
2282
+ name: {
2283
+ en: "Skeleton",
2284
+ ru: "Скелетон"
2285
+ },
2286
+ components: ["Skeleton"],
2287
+ template: "\n <DesignSkeleton :active=\"true\" style=\"max-width:320px\">\n <div class=\"wiki-storybook-flex-column\">\n <DesignComponent\n isSkeleton\n type=\"select\"\n label=\"Loading select\"\n helperMessage=\"Options are loading...\"\n :option=\"[\n {label: 'First option', value: 'option1'},\n {label: 'Second option', value: 'option2'},\n {label: 'Third option', value: 'option3'}\n ]\"\n />\n </div>\n </DesignSkeleton>\n "
2288
+ }
2289
+ ],
2290
+ documentation: {
2291
+ body: "\n<StorybookDescriptions componentName={'Select'} type={'select'}/>\n<Canvas of={Component.SelectBasic}/>\n\n<StorybookDescriptions componentName={'Value'} type={'value'}/>\n<StorybookDescriptions componentName={'Value'} type={'v-model'}/>\n<Canvas of={Component.SelectVModel}/>\n\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.SelectSkeleton}/>\n ",
2292
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'input'}/>\n<StorybookDescriptions componentName={'Event'} type={'change'}/>\n ",
2293
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'selected'}/>\n<StorybookDescriptions componentName={'Expose'} type={'validation'}/>\n ",
2294
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'label'} />\n<StorybookDescriptions componentName={'Slot'} type={'prefix'} />\n<StorybookDescriptions componentName={'Slot'} type={'suffix'} />\n<StorybookDescriptions componentName={'Slot'} type={'caption'} />\n<StorybookDescriptions componentName={'Slot'} type={'leading'} />\n<StorybookDescriptions componentName={'Slot'} type={'trailing'} />\n<StorybookDescriptions componentName={'List'} type={'slot.html'}/>\n<StorybookDescriptions componentName={'Menu'} type={'slots'}/>\n "
2295
+ },
2296
+ ai: { description: "\nHigh-level form control that combines a trigger field, a dropdown menu, and a structured value display (Chips or text). Designed for choosing single or multiple items from static lists or dynamic datasets with built-in search and filtering.\nFeatures support for AJAX data loading with caching, multiple selection with chips, and an editable combobox mode (editValue). Includes integrated validation, keyboard navigation, and full Field component functionality (labels, icons, and state messages).\nControlled via the option prop for data and v-model for state tracking, supporting custom key mapping (keyLabel/keyValue). Use for user selection, category filtering, or complex multi-select interfaces requiring real-time search.\n " }
2297
+ },
2298
+ {
2299
+ name: "SelectValue",
2300
+ description: {
2301
+ en: "Display component for selected values in select controls, showing chips for multiple selection or single text value",
2302
+ ru: "Компонент отображения выбранных значений в элементах выбора, показывающий чипы для множественного выбора или одиночное текстовое значение"
2303
+ },
2304
+ possibilities: {
2305
+ en: [
2306
+ "single or multiple value display modes",
2307
+ "automatic chip rendering for multiple selections",
2308
+ "placeholder support for empty state",
2309
+ "cancel icon for clearing individual selections",
2310
+ "customizable chip appearance via chipAttrs",
2311
+ "optional icon display in chips",
2312
+ "responsive handling of selected items",
2313
+ "disabled and readonly states support"
2314
+ ],
2315
+ ru: [
2316
+ "режимы отображения одиночного или множественного значения",
2317
+ "автоматический рендеринг чипов для множественного выбора",
2318
+ "поддержка плейсхолдера для пустого состояния",
2319
+ "иконка отмены для очистки отдельных выборов",
2320
+ "настраиваемый внешний вид чипов через chipAttrs",
2321
+ "опциональное отображение иконок в чипах",
2322
+ "адаптивная обработка выбранных элементов",
2323
+ "поддержка состояний disabled и readonly"
2324
+ ]
2325
+ },
2326
+ import: [],
2327
+ stories: [{
2328
+ id: "SelectValueBasic",
2329
+ name: {
2330
+ en: "Basic",
2331
+ ru: "Базовые"
2332
+ },
2333
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-item wiki-storybook-item--padding wiki-storybook-item--auto\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Placeholder</div>\n <DesignComponent placeholder=\"Select option\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--padding wiki-storybook-item--auto\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Single value</div>\n <DesignComponent :value=\"[{ label: 'Option 1', value: '1' }]\"/>\n </div>\n <div class=\"wiki-storybook-item wiki-storybook-item--padding wiki-storybook-item--auto\">\n <div class=\"wiki-storybook-item__label wiki-storybook-item__label--static\">Multiple values</div>\n <DesignComponent\n :multiple=\"true\"\n :value=\"[\n { label: 'Option 1', value: '1', index: '1' },\n { label: 'Option 2', value: '2', index: '2' },\n { label: 'Option 3', value: '3', index: '3' }\n ]\"\n />\n </div>\n </div>\n "
2334
+ }],
2335
+ documentation: {
2336
+ body: "\n<StorybookDescriptions componentName={'SelectValue'} type={'selectValue'}/>\n<Canvas of={Component.SelectValueBasic}/>\n ",
2337
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n "
2338
+ },
2339
+ ai: { description: "\nSpecialized display engine used within Select, Combobox, or Autocomplete controls to render selected state. Dynamically switches between a simple text label for single selection and a group of Chips for multiple selection.\nFeatures automated Chip management, including removal event handling and integration with the Select data model. Supports empty state placeholders, custom Chip attributes (icons, outlines), and handles disabled/readonly states to prevent interaction.\nControlled via the multiple and value props, requiring an array of objects even for single selection. Use as a foundational element when building custom selection fields requiring standardized token-based or text-based value representation.\n " }
2340
+ },
2341
+ {
2342
+ name: "Skeleton",
2343
+ description: {
2344
+ en: "Skeleton component for displaying loading placeholders",
2345
+ ru: "Компонент для отображения заглушки загрузки. Создает анимированные плейсхолдеры для контента во время загрузки данных"
2346
+ },
2347
+ possibilities: {
2348
+ en: [
2349
+ "animated loading placeholders for content",
2350
+ "control visibility with `active` property",
2351
+ "child elements react to the skeleton state via `isSkeleton` property or special classes",
2352
+ "customizable appearance and animation"
2353
+ ],
2354
+ ru: [
2355
+ "анимированные заглушки загрузки для контента",
2356
+ "управление видимостью через свойство `active`",
2357
+ "дочерние элементы реагируют на состояние скелетона через свойство `isSkeleton` или специальные классы",
2358
+ "настраиваемый внешний вид и анимация"
2359
+ ]
2360
+ },
2361
+ render: "\n <DesignComponent v-bind=\"args\">\n <div class=\"wiki-storybook-card design-component__background\">\n <div class=\"wiki-storybook-card__image design-component__background\" style=\"background-image: url('${image1}')\"/>\n <div class=\"wiki-storybook-card__content\">\n <div>\n <div class=\"wiki-storybook-card__label design-component__text\">Product Name</div>\n <div class=\"wiki-storybook-card__information design-component__textVariant\">Short description</div>\n </div>\n <div class=\"wiki-storybook-card__description design-component__text\">\n Detailed product description that tells about its main features and advantages.\n </div>\n <div class=\"wiki-storybook-card__actions\">\n <button class=\"wiki-storybook-button design-component__background\">Buy Now</button>\n </div>\n </div>\n </div>\n </DesignComponent>\n ",
2362
+ import: ["import { image1 } from '@dxtmisha/wiki/media'"],
2363
+ stories: [{
2364
+ id: "SkeletonBasic",
2365
+ name: {
2366
+ en: "Basic usage",
2367
+ ru: "Базовое использование"
2368
+ },
2369
+ template: "\n <div class=\"wiki-storybook-group\">\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">text</div>\n <DesignComponent :active=\"true\">\n <div class=\"design-component__text\">Text placeholder</div>\n <div class=\"design-component__text\">Text placeholder</div>\n <div class=\"design-component__text\">Text placeholder</div>\n </DesignComponent>\n </div>\n\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">textVariant</div>\n <DesignComponent :active=\"true\">\n <div class=\"design-component__textVariant\">Text placeholder</div>\n <div class=\"design-component__textVariant\">Text placeholder</div>\n <div class=\"design-component__textVariant\">Text placeholder</div>\n </DesignComponent>\n </div>\n\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">background</div>\n <DesignComponent :active=\"true\">\n <div\n class=\"design-component__background\"\n style=\"width: 128px; height: 128px;\"\n >\n Text placeholder\n </div>\n </DesignComponent>\n </div>\n\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">backgroundVariant</div>\n <DesignComponent :active=\"true\">\n <div\n class=\"design-component__backgroundVariant\"\n style=\"width: 128px; height: 128px;\"\n >\n Background Variant\n </div>\n </DesignComponent>\n </div>\n\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">border</div>\n <DesignComponent :active=\"true\">\n <div\n class=\"design-component__border\"\n style=\"width: 128px; height: 128px; border: 2px solid #ccc;\"\n >\n Border placeholder\n </div>\n </DesignComponent>\n </div>\n\n <div class=\"wiki-storybook-item wiki-storybook-item--squared--md wiki-storybook-item--center\">\n <div class=\"wiki-storybook-item__label\">borderVariant</div>\n <DesignComponent :active=\"true\">\n <div\n class=\"design-component__borderVariant\"\n style=\"width: 128px; height: 128px; border: 2px solid #ccc;\"\n >\n Border Variant\n </div>\n </DesignComponent>\n </div>\n </div>\n "
2370
+ }],
2371
+ documentation: {
2372
+ body: "\n<StorybookDescriptions componentName={'Skeleton'} type={'active'}/>\n<StorybookDescriptions componentName={'Skeleton'} type={'classes'}/>\n<Canvas of={Component.SkeletonBasic}/>\n ",
2373
+ expose: "\n<StorybookDescriptions componentName={'Skeleton'} type={'expose.isActive'}/>\n "
2374
+ },
2375
+ ai: { description: "\nStructural layout utility designed to display animated loading placeholders (ghost versions) for UI elements. Improves perceived performance and prevents Cumulative Layout Shift (CLS) by reserving space for incoming content.\nFeatures a logic-sharing mechanism via provide/inject that allows child components (Field, Image, Chip) to automatically switch to their skeleton states without individual props. Exposes specialized CSS classes through slot props for styling raw HTML elements as text lines, backgrounds, or borders.\nControlled via the active prop to toggle the global loading state and accessibility Busy/Live attributes. Use as a wrapper for sections or entire pages during data fetching to maintain structural integrity and a high-quality user experience.\n " }
2376
+ },
2377
+ {
2378
+ name: "Snackbar",
2379
+ description: {
2380
+ en: "An orchestration component for managing and displaying a queue of temporary notification messages (Snackbars).",
2381
+ ru: "Компонент-оркестратор для управления и отображения очереди временных уведомлений (Snackbars)."
2382
+ },
2383
+ possibilities: {
2384
+ en: [
2385
+ "automatic lifecycle management for notifications",
2386
+ "flexible anchor positioning (top/bottom, left/right/block)",
2387
+ "priority-based visual separation of messages",
2388
+ "configurable auto-hide timeout",
2389
+ "teleport-based rendering to ensure overlay on top of all elements",
2390
+ "full programmatic control over the notification queue"
2391
+ ],
2392
+ ru: [
2393
+ "автоматическое управление жизненным циклом уведомлений",
2394
+ "гибкое позиционирование (сверху/снизу, слева/справа/блоком)",
2395
+ "визуальное разделение сообщений по приоритету",
2396
+ "настраиваемое время автоматического скрытия",
2397
+ "рендер через Teleport для гарантированного отображения поверх всех элементов",
2398
+ "полный программный контроль над очередью уведомлений"
2399
+ ]
2400
+ },
2401
+ import: [],
2402
+ render: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex\">\n <button\n class=\"wiki-storybook-button\"\n @click=\"() => $refs.snackbar.add({ data: { label: 'Action completed', icon: 'check_circle' }, delay: 3000 })\"\n >\n Success Message\n </button>\n <button\n class=\"wiki-storybook-button\"\n @click=\"() => $refs.snackbar.add({ data: { label: 'Connection timeout', description: 'Retrying in 5s...', icon: 'error' }, highPriority: true })\"\n >\n System Error\n </button>\n <button\n class=\"wiki-storybook-button wiki-storybook-button--warning\"\n @click=\"() => $refs.snackbar.clear()\"\n >\n Clear Queue\n </button>\n </div>\n <DesignComponent ref=\"snackbar\" v-bind=\"args\" />\n </div>\n ",
2403
+ stories: [],
2404
+ documentation: {
2405
+ body: "\n<StorybookDescriptions componentName={'Snackbar'} type={'snackbar'}/>\n<StorybookDescriptions componentName={'Snackbar'} type={'add'}/>\n\n<StorybookDescriptions componentName={'Snackbar'} type={'adaptation'}/>\n<StorybookDescriptions componentName={'Snackbar'} type={'position'}/>\n ",
2406
+ events: "\n<StorybookDescriptions componentName={'Snackbar'} type={'event.show'}/>\n<StorybookDescriptions componentName={'Snackbar'} type={'event.hide'}/>\n ",
2407
+ expose: "\n<StorybookDescriptions componentName={'Snackbar'} type={'expose.isItem'}/>\n<StorybookDescriptions componentName={'Snackbar'} type={'expose.add'}/>\n<StorybookDescriptions componentName={'Snackbar'} type={'expose.remove'}/>\n<StorybookDescriptions componentName={'Snackbar'} type={'expose.clear'}/>\n ",
2408
+ slots: ""
2409
+ },
2410
+ ai: { description: "\nCentralized notification management system (orchestrator) that coordinates the lifecycle and queue of temporary messages. Ideal for global system alerts, user feedback, and asynchronous status updates across the application.\nFeatures an intelligent queue manager with support for priority containers, automatic lifecycle hooks (show/hide), and flexible screen anchoring (vertical/horizontal positioning). Includes programmatic control over message stack, custom auto-hide delays, and teleport-based rendering to ensure overlay priority over all content.\nControlled via an exposed API (add, remove, clear) and configurable global settings like delay and origin. Place a single instance at the root of the application (e.g., App.vue) to manage consistent notification patterns throughout the entire user session.\n " }
2411
+ },
2412
+ {
2413
+ name: "SnackbarItem",
2414
+ description: {
2415
+ en: "Individual notification message element used within a Snackbar.",
2416
+ ru: "Элемент индивидуального уведомления, используемый внутри Snackbar."
2417
+ },
2418
+ possibilities: {
2419
+ en: [
2420
+ "support for label and detailed description text",
2421
+ "leading and trailing icons support",
2422
+ "action buttons support",
2423
+ "custom HTML or component rendering",
2424
+ "built-in close button with customizable icon",
2425
+ "accessible ARIA status by default"
2426
+ ],
2427
+ ru: [
2428
+ "поддержка заголовка и подробного текста описания",
2429
+ "поддержка начальных и конечных иконок",
2430
+ "поддержка кнопок действий",
2431
+ "рендер произвольного HTML или компонентов",
2432
+ "встроенная кнопка закрытия с настраиваемой иконкой",
2433
+ "доступный ARIA статус по умолчанию"
2434
+ ]
2435
+ },
2436
+ import: [],
2437
+ stories: [{
2438
+ id: "SnackbarItemBasic",
2439
+ name: {
2440
+ en: "Basic",
2441
+ ru: "Базовые"
2442
+ },
2443
+ template: "\n <div class=\"wiki-storybook-group\">\n <DesignComponent\n label=\"Detailed notification\"\n description=\"Description text provides more context for the user.\"\n class=\"wiki-storybook-item--squared--lg\"\n />\n <DesignComponent\n label=\"Success message\"\n icon=\"check_circle\"\n class=\"wiki-storybook-item--squared--lg\"\n />\n <DesignComponent\n label=\"File deleted\"\n icon=\"delete\"\n button=\"Undo\"\n class=\"wiki-storybook-item--squared--lg\"\n />\n <DesignComponent\n label=\"Connection lost\"\n icon=\"wifi_off\"\n :actions-list=\"[{ label: 'Retry', primary: true }]\"\n class=\"wiki-storybook-item--squared--lg\"\n />\n </div>\n "
2444
+ }],
2445
+ documentation: {
2446
+ body: "\n<StorybookDescriptions componentName={'SnackbarItem'} type={'snackbarItem'}/>\n<Canvas of={Component.SnackbarItemBasic}/>\n\n<StorybookDescriptions componentName={'SnackbarItem'} type={'component'}/>\n<StorybookDescriptions componentName={'SnackbarItem'} type={'html'}/>\n<StorybookDescriptions componentName={'SnackbarItem'} type={'role'}/>\n ",
2447
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n<StorybookDescriptions componentName={'Event'} type={'actions'}/>\n<StorybookDescriptions componentName={'SnackbarItem'} type={'eventClose'}/>\n ",
2448
+ expose: "",
2449
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n<StorybookDescriptions componentName={'Slot'} type={'body'}/>\n"
2450
+ },
2451
+ ai: { description: "\nVisual representation element for a single notification message, typically orchestrated by the Snackbar component. Designed for concise informational alerts, success messages, or quick-action prompts.\nFeatures a flexible internal structure with support for labels, detailed descriptions, and material-symbol icons (leading/trailing). Includes integrated action button support, a mandatory close button, and support for rendering custom HTML or Vue components as message bodies.\nControlled via simple content props or an actions-list array for complex button configurations. Use as the base message unit for all system feedback, ensuring high visibility and accessibility through automatic ARIA status role implementation.\n " }
2452
+ },
2453
+ {
2454
+ name: "TabItem",
2455
+ description: {
2456
+ en: "A versatile component for creating tabs, navigation links, or list items. Supports icons, badges, labels, and various interactive states.",
2457
+ ru: "Универсальный компонент для создания вкладок, навигационных ссылок или элементов списка. Поддерживает иконки, бейджи, метки и различные интерактивные состояния."
2458
+ },
2459
+ possibilities: {
2460
+ en: [
2461
+ "displaying a label (`label`)",
2462
+ "leading and trailing icons (`icon`, `iconTrailing`)",
2463
+ "integrated badge support (`badge`)",
2464
+ "selection state (`selected`)",
2465
+ "disabled state (`disabled`)",
2466
+ "navigation support (`href`, `to`)",
2467
+ "customizable root tag (`tag`)",
2468
+ "ripple effect on click",
2469
+ "skeleton loading state"
2470
+ ],
2471
+ ru: [
2472
+ "отображение метки (`label`)",
2473
+ "иконки слева и справа (`icon`, `iconTrailing`)",
2474
+ "встроенная поддержка бейджа (`badge`)",
2475
+ "состояние выбора (`selected`)",
2476
+ "отключенное состояние (`disabled`)",
2477
+ "поддержка навигации (`href`, `to`)",
2478
+ "настраиваемый корневой тег (`tag`)",
2479
+ "эффект ряби при клике",
2480
+ "состояние загрузки (скелетон)"
2481
+ ]
2482
+ },
2483
+ render: "\n <div class=\"wiki-storybook-flex\">\n <DesignComponent v-bind=\"args\" />\n <DesignComponent v-bind=\"args\" />\n <DesignComponent v-bind=\"args\" />\n </div>\n ",
2484
+ stories: [{
2485
+ id: "TabItemSkeleton",
2486
+ name: {
2487
+ en: "Skeleton",
2488
+ ru: "Скелетон"
2489
+ },
2490
+ components: ["Skeleton"],
2491
+ template: "\n <DesignSkeleton :active=\"true\">\n <DesignComponent isSkeleton>Tab item</DesignComponent>\n </DesignSkeleton>\n "
2492
+ }],
2493
+ documentation: {
2494
+ body: "\n<StorybookDescriptions componentName={'TabItem'} type={'tabItem'}/>\n<StorybookDescriptions componentName={'Style'} type={'isSkeleton'}/>\n<Canvas of={Component.TabItemSkeleton}/>\n ",
2495
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n ",
2496
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'value'}/>\n<StorybookDescriptions componentName={'Expose'} type={'detail'}/>\n ",
2497
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n "
2498
+ },
2499
+ ai: { description: "\nFoundational interactive building block for multi-item navigation structures like tabs, list menus, and sidebars. Encapsulates a label, optional icons, and status indicators (badges) into a single semantic unit with integrated state management.\nFeatures built-in support for selected, disabled, and loading (skeleton) states, along with automated navigation logic for href and router-link. Includes a Material-style ripple effect for high-polish click feedback and flexible tag rendering to support various HTML roles (button, a, li).\nControlled via label, icon, and badge props, with v-model or selected prop integration. Use within Tabs or List components to create cohesive, accessible navigation interfaces with consistent visual affordance and spatial organization.\n " }
2500
+ },
2501
+ {
2502
+ name: "Tabs",
2503
+ description: {
2504
+ en: "Tabs component for switching between different views with animation",
2505
+ ru: "Компонент вкладок для переключения между различными представлениями с анимацией"
2506
+ },
2507
+ possibilities: {
2508
+ en: [
2509
+ "switching between content sections",
2510
+ "animated transitions via MotionAxis",
2511
+ "navigation via TabsNavigation",
2512
+ "customizable tabs list",
2513
+ "dynamic content slots"
2514
+ ],
2515
+ ru: [
2516
+ "переключение между разделами контента",
2517
+ "анимированные переходы через MotionAxis",
2518
+ "навигация через TabsNavigation",
2519
+ "настраиваемый список вкладок",
2520
+ "динамические слоты контента"
2521
+ ]
2522
+ },
2523
+ import: ["import { ref } from 'vue'"],
2524
+ render: "\n<DesignComponent v-bind=\"args\">\n <template #home>Welcome to your personal dashboard! Here you can see an overview of your activity.</template>\n <template #profile>Manage your personal information, security settings, and preferences.</template>\n <template #messages>You have 3 unread messages. Connect with your colleagues and friends.</template>\n <template #settings>Adjust your application settings to suit your needs.</template>\n <template #dashboard>View your analytics and performance metrics in real-time.</template>\n <template #notifications>Stay updated with the latest alerts and announcements.</template>\n</DesignComponent>\n ",
2525
+ stories: [{
2526
+ id: "TabsBasic",
2527
+ name: {
2528
+ en: "Basic",
2529
+ ru: "Базовый"
2530
+ },
2531
+ template: "\n <DesignComponent\n :tabs=\"[\n { label: 'Home', value: 'home' },\n { label: 'Profile', value: 'profile' }\n ]\"\n selected=\"home\"\n >\n <template #home>Home</template>\n <template #profile>Profile</template>\n </DesignComponent>\n "
2532
+ }, {
2533
+ id: "TabsVModel",
2534
+ name: {
2535
+ en: "v-model",
2536
+ ru: "v-model"
2537
+ },
2538
+ setup: "\n return {\n selected: ref('tab1')\n }\n ",
2539
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex-align-center\">\n <span>Current value: {{ selected }}</span>\n <button class=\"wiki-storybook-button\" @click=\"selected = 'tab1'\">Tab 1</button>\n <button class=\"wiki-storybook-button\" @click=\"selected = 'tab2'\">Tab 2</button>\n <button class=\"wiki-storybook-button\" @click=\"selected = 'tab3'\">Tab 3</button>\n </div>\n\n <DesignComponent\n :tabs=\"[\n { label: 'Tab 1', value: 'tab1' },\n { label: 'Tab 2', value: 'tab2' },\n { label: 'Tab 3', value: 'tab3' }\n ]\"\n v-model:selected=\"selected\"\n >\n <template #tab1>Content 1</template>\n <template #tab2>Content 2</template>\n <template #tab3>Content 3</template>\n </DesignComponent>\n </div>\n "
2540
+ }],
2541
+ documentation: { body: "\n<StorybookDescriptions componentName={'Tabs'} type={'tabs'}/>\n<Canvas of={Component.TabsBasic}/>\n\n<StorybookDescriptions componentName={'Tabs'} type={'v-model'}/>\n<Canvas of={Component.TabsVModel}/>\n " },
2542
+ ai: { description: "\nHigh-level compound component that integrates TabsNavigation and MotionAxis to provide a complete, animated tabbed interface. Simplifies the creation of multi-view layouts where each section is logically separated and visually transitioned.\nFeatures automated coordination between the navigation bar and the content area, including direction-aware sliding animations and lazy loading. Supports dynamic tab lists, centralized state management via v-model, and modular content distribution through named slots matching tab values.\nControlled via the tabs prop for structure and v-model:selected for active state. Use for main dashboard views, complex settings panels, or any multi-step interface requiring a polished, interactive navigation experience with high performance.\n " }
2543
+ },
2544
+ {
2545
+ name: "TabsNavigation",
2546
+ description: {
2547
+ en: "Component for managing navigation between tabs. Supports horizontal scrolling, selection management, and focus.",
2548
+ ru: "Компонент для управления навигацией между вкладками. Поддерживает горизонтальную прокрутку, управление выделением и фокусом."
2549
+ },
2550
+ possibilities: {
2551
+ en: [
2552
+ "horizontal scrolling of tabs",
2553
+ "management of the selected tab via `selected` and `list`",
2554
+ "keyboard support (arrows, Enter, Space)",
2555
+ "customization of tab appearance via `tag` and `itemAttrs`",
2556
+ "event support: `update:selected`, `update:modelSelected`"
2557
+ ],
2558
+ ru: [
2559
+ "горизонтальная прокрутка вкладок",
2560
+ "управление выбранной вкладкой через `selected` и `list`",
2561
+ "поддержка клавиатуры (стрелки, Enter, Пробел)",
2562
+ "настройка внешнего вида вкладок через `tag` и `itemAttrs`",
2563
+ "поддержка событий: `update:selected`, `update:modelSelected`"
2564
+ ]
2565
+ },
2566
+ render: "\n <DesignComponent v-bind=\"args\"/>\n ",
2567
+ import: ["import { ref } from 'vue'"],
2568
+ stories: [{
2569
+ id: "TabsNavigationBasic",
2570
+ name: {
2571
+ en: "Basic usage",
2572
+ ru: "Базовое использование"
2573
+ },
2574
+ setup: "\n const list = [\n { label: 'Tab 1', value: '1' },\n { label: 'Tab 2', value: '2' },\n { label: 'Tab 3', value: '3' }\n ]\n const selected = ref('2')\n return { list, selected }\n ",
2575
+ template: "\n <DesignComponent :list=\"list\" v-model:selected=\"selected\"/>\n "
2576
+ }, {
2577
+ id: "TabsNavigationVModel",
2578
+ name: {
2579
+ en: "Two-way binding (v-model)",
2580
+ ru: "Двусторонняя привязка (v-model)"
2581
+ },
2582
+ setup: "\n const list = [\n { label: 'Tab 1', value: '1' },\n { label: 'Tab 2', value: '2' },\n { label: 'Tab 3', value: '3' }\n ]\n const selected = ref('1')\n return { list, selected }\n ",
2583
+ template: "\n <div class=\"wiki-storybook-flex-column\">\n <div class=\"wiki-storybook-flex-align-center\">\n <span>Current value: {{ selected }}</span>\n <button class=\"wiki-storybook-button\" @click=\"selected = '1'\">Select Tab 1</button>\n <button class=\"wiki-storybook-button\" @click=\"selected = '2'\">Select Tab 2</button>\n <button class=\"wiki-storybook-button\" @click=\"selected = '3'\">Select Tab 3</button>\n </div>\n\n <DesignComponent :list=\"list\" v-model:selected=\"selected\"/>\n </div>\n "
2584
+ }],
2585
+ documentation: {
2586
+ body: "\n<StorybookDescriptions componentName={'TabsNavigation'} type={'tabsNavigation'}/>\n<Canvas of={Component.TabsNavigationBasic}/>\n<StorybookDescriptions componentName={'TabsNavigation'} type={'v-model'}/>\n<Canvas of={Component.TabsNavigationVModel}/>\n ",
2587
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'click'}/>\n ",
2588
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'leading'} />\n<StorybookDescriptions componentName={'Slot'} type={'trailing'} />\n "
2589
+ },
2590
+ ai: { description: "\nSpecialized navigation container for creating horizontal tab bars with automated scrolling and focus management. Designed for switching between filtered views, dashboard sections, or multi-step form progress indicators.\nFeatures intelligent horizontal scrolling with alignment control, keyboard navigation support (arrows, Enter, Space), and customizable tab item rendering via the tag and itemAttrs props. Automatically synchronizes active state through two-way binding and provides leading/trailing slots for auxiliary navigation actions.\nControlled via the list prop for tab definitions and v-model:selected for active state tracking. Use as the base header for complex tabbed layouts or standalone navigation bars requiring high accessibility and smooth interaction across mobile and desktop.\n " }
2591
+ },
2592
+ {
2593
+ name: "Textarea",
2594
+ description: {
2595
+ en: "A multi-line text input component. Supports auto-sizing, validation, icons, labels, messages, and counters.",
2596
+ ru: "Компонент многострочного ввода текста. Поддерживает авто-размер, валидацию, иконки, метки, сообщения и счетчики."
2597
+ },
2598
+ possibilities: {
2599
+ en: [
2600
+ "multi-line text input",
2601
+ "auto-sizing based on content (`autosize`)",
2602
+ "validation support (`validationMessage`, `required`)",
2603
+ "label and helper message support",
2604
+ "character counter (`counter`, `maxlength`)",
2605
+ "icons support",
2606
+ "disabled and readonly states"
2607
+ ],
2608
+ ru: [
2609
+ "многострочный ввод текста",
2610
+ "авто-размер в зависимости от контента (`autosize`)",
2611
+ "поддержка валидации (`validationMessage`, `required`)",
2612
+ "поддержка метки и вспомогательного сообщения",
2613
+ "счетчик символов (`counter`, `maxlength`)",
2614
+ "поддержка иконок",
2615
+ "состояния отключения и только для чтения"
2616
+ ]
2617
+ },
2618
+ render: "\n <DesignComponent v-bind=\"args\" />\n ",
2619
+ stories: [],
2620
+ documentation: {
2621
+ body: "\n<StorybookDescriptions componentName={'Textarea'} type={'textarea'}/>\n<StorybookDescriptions componentName={'Textarea'} type={'autosize'}/>\n ",
2622
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'input'}/>\n<StorybookDescriptions componentName={'Event'} type={'change'}/>\n ",
2623
+ slots: "\n<StorybookDescriptions componentName={'Slot'} type={'label'} />\n<StorybookDescriptions componentName={'Slot'} type={'prefix'} />\n<StorybookDescriptions componentName={'Slot'} type={'suffix'} />\n<StorybookDescriptions componentName={'Slot'} type={'caption'} />\n<StorybookDescriptions componentName={'Slot'} type={'leading'} />\n<StorybookDescriptions componentName={'Slot'} type={'trailing'} />\n "
2624
+ },
2625
+ ai: { description: "\nVersatile multi-line text input control with automated spatial management and comprehensive validation support. Designed for feedback forms, detailed descriptions, and any scenario requiring a flexible, high-volume data entry area.\nFeatures an intelligent autosize engine that grows/shrinks dynamically based on content, along with character counter integration and Material symbol icons (leading/trailing). Inherits full Field component functionality including floating labels, helper messages, and reactive error states.\nControlled via the v-model for content and autosize prop for height behavior. Use for user biographies, multi-row comments, or complex data entry views where standard single-line inputs lack sufficient capacity.\n " }
2626
+ },
2627
+ {
2628
+ name: "TextareaAutosize",
2629
+ description: {
2630
+ en: "Textarea component that automatically adjusts its height based on content",
2631
+ ru: "Компонент текстового поля, которое автоматически подстраивает свою высоту под содержимое"
2632
+ },
2633
+ possibilities: {
2634
+ en: [
2635
+ "automatic height adjustment based on content",
2636
+ "clone element for precise height calculation",
2637
+ "respects padding and styling from the original textarea",
2638
+ "smooth height transitions on content change",
2639
+ "supports all standard textarea attributes via inputAttrs",
2640
+ "optional autosize toggle for flexibility",
2641
+ "reactive value binding with input event emission"
2642
+ ],
2643
+ ru: [
2644
+ "автоматическая подстройка высоты под содержимое",
2645
+ "элемент-клон для точного расчёта высоты",
2646
+ "учитывает отступы и стили исходного textarea",
2647
+ "плавные переходы высоты при изменении содержимого",
2648
+ "поддержка всех стандартных атрибутов textarea через inputAttrs",
2649
+ "опциональное отключение autosize для гибкости",
2650
+ "реактивная привязка значения с генерацией события input"
2651
+ ]
2652
+ },
2653
+ import: [],
2654
+ render: "\n <DesignComponent v-bind=\"args\" :inputAttrs=\"{style: 'width: 240px; border: 1px solid #90A1B9FF'}\" />\n ",
2655
+ stories: [],
2656
+ documentation: {
2657
+ body: "\n<StorybookDescriptions componentName={'TextareaAutosize'} type={'textarea-autosize'}/>\n ",
2658
+ events: "\n<StorybookDescriptions componentName={'Event'} type={'input-standard'}/>\n ",
2659
+ expose: "\n<StorybookDescriptions componentName={'Expose'} type={'value'}/>\n "
2660
+ },
2661
+ ai: { description: "\nLow-level functional engine for multi-line inputs that provides precise, real-time height adjustment based on content. Implements a reliable cloning mechanism to calculate scroll-free container heights while respecting parent padding and font styles.\nFeatures automated height synchronization during content changes, supporting smooth CSS transitions and native textarea attributes via inputAttrs. Operates as a foundational tool for the Textarea component, ensuring character entry never triggers unwanted shift or overflow.\nPrimarily integrated as a subcomponent; should generally not be manually used for standalone input fields. Controlled via reactive value bindings, serving as the high-performance core for any dynamic data entry element requiring responsive layout scaling.\n " }
2662
+ },
2663
+ {
2664
+ name: "Tooltip",
2665
+ description: {
2666
+ en: "Component for displaying a popup hint when hovering over an element",
2667
+ ru: "Компонент для отображения всплывающей подсказки при наведении на элемент"
2668
+ },
2669
+ possibilities: {
2670
+ en: [
2671
+ "displaying text or other content in a popup window",
2672
+ "automatic positioning relative to the element",
2673
+ "support for delay before showing and hiding",
2674
+ "customizable indentation and padding",
2675
+ "ability to control the open state",
2676
+ "support for an arrow pointing to the element"
2677
+ ],
2678
+ ru: [
2679
+ "отображение текста или другого контента во всплывающем окне",
2680
+ "автоматическое позиционирование относительно элемента",
2681
+ "поддержка задержки перед показом и скрытием",
2682
+ "настраиваемые отступы и поля",
2683
+ "возможность управления состоянием открытия",
2684
+ "поддержка стрелки, указывающей на элемент"
2685
+ ]
2686
+ },
2687
+ import: [],
2688
+ render: "\n <DesignComponent v-bind=\"args\">\n <template #control=\"{ binds }\">\n <span v-bind=\"binds\">\n Hover me\n </span>\n </template>\n </DesignComponent>\n ",
2689
+ stories: [{
2690
+ id: "TooltipAllSlots",
2691
+ name: {
2692
+ en: "All slots demonstration",
2693
+ ru: "Демонстрация всех слотов"
2694
+ },
2695
+ template: "\n <DesignComponent>\n <template #control=\"{ binds }\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">\n Hover me (All Slots)\n </button>\n </template>\n\n <template #default>\n Default Slot\n </template>\n\n <template #description>\n Description Slot\n </template>\n\n <template #body>\n <div class=\"wiki-storybook-item--padding\">\n Body Slot Content\n </div>\n </template>\n </DesignComponent>\n "
2696
+ }],
2697
+ documentation: {
2698
+ body: "\n<StorybookDescriptions componentName={'Tooltip'} type={'tooltip'}/>\n ",
2699
+ events: "\n<StorybookDescriptions componentName={'Tooltip'} type={'event.tooltip'}/>\n ",
2700
+ slots: "\n<Canvas of={Component.TooltipAllSlots}/>\n<StorybookDescriptions componentName={'Tooltip'} type={'slot.control'}/>\n<StorybookDescriptions componentName={'Slot'} type={'default'}/>\n<StorybookDescriptions componentName={'Slot'} type={'description'}/>\n<StorybookDescriptions componentName={'Slot'} type={'body'}/>\n "
2701
+ },
2702
+ ai: {
2703
+ render: "\n<div :class=\"classDemo.item\">\n <Tooltip open embedded v-bind=\"args\">\n <template #control=\"{ binds }\">\n <button v-bind=\"binds\">Hover me</button>\n </template>\n </Tooltip>\n</div>\n ",
2704
+ description: "\nContextual informational overlay that appears when a user interacts with a trigger element via hover or focus. Designed for auxiliary labels, helper text, and secondary descriptive titles that enhance functional awareness without crowding the UI.\nFeatures automated high-precision positioning (top, bottom, left, right) with viewport collision detection and customizable delay/interactive behaviors. Includes a built-in arrow indicator and requires trigger binding via the #control slot's binds object for proper event synchronization.\nControlled via simple content props (label, description) and supports complex HTML structures within the #default slot. Use to provide non-critical supplemental information, keyboard shortcuts, or detailed affordance for icon-only buttons.\n "
2705
+ }
2706
+ },
2707
+ {
2708
+ name: "Window",
2709
+ description: {
2710
+ en: "Flexible modal and popup window component with advanced positioning and animation capabilities",
2711
+ ru: "Гибкий компонент модального и всплывающего окна с расширенными возможностями позиционирования и анимации"
2712
+ },
2713
+ possibilities: {
2714
+ en: [
2715
+ "modal and contextual window display modes",
2716
+ "intelligent positioning system with automatic collision detection",
2717
+ "smooth opening and closing animations with customizable transitions",
2718
+ "static mode for embedded window components",
2719
+ "persistent window state management",
2720
+ "automatic scroll handling and content overflow management",
2721
+ "keyboard navigation and accessibility support",
2722
+ "event-driven architecture with comprehensive lifecycle hooks",
2723
+ "integration with scrollbar and image components",
2724
+ "responsive design with mobile and desktop optimization"
2725
+ ],
2726
+ ru: [
2727
+ "режимы отображения модальных и контекстных окон",
2728
+ "интеллектуальная система позиционирования с автоматическим определением коллизий",
2729
+ "плавные анимации открытия и закрытия с настраиваемыми переходами",
2730
+ "статический режим для встроенных компонентов окон",
2731
+ "управление постоянным состоянием окна",
2732
+ "автоматическая обработка прокрутки и управление переполнением контента",
2733
+ "навигация с клавиатуры и поддержка доступности",
2734
+ "событийно-ориентированная архитектура с комплексными хуками жизненного цикла",
2735
+ "интеграция с компонентами скроллбара и изображений",
2736
+ "адаптивный дизайн с оптимизацией для мобильных устройств и десктопа"
2737
+ ]
2738
+ },
2739
+ import: ["import { ref } from 'vue'"],
2740
+ render: "\n <DesignComponent v-bind=\"args\">\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Open Window</button>\n </template>\n\n <template #title>\n <h3 class=\"wiki-storybook-item--padding\">Window Component Demonstration</h3>\n </template>\n\n <template #default>\n <div class=\"wiki-storybook-item--padding\">\n <h4>Advanced Window System</h4>\n <p>This window component represents a sophisticated approach to modal and popup interfaces in modern web applications. It provides a comprehensive solution for displaying overlaid content with intelligent positioning, smooth animations, and extensive customization options.</p>\n\n <p>The component automatically handles complex scenarios such as viewport boundaries, scroll positioning, and responsive behavior across different screen sizes. Whether used for modal dialogs, dropdown menus, tooltips, or contextual panels, the window component adapts to various use cases while maintaining consistent behavior and appearance.</p>\n\n <h4>Key Features and Capabilities</h4>\n <p>The window system includes advanced features such as automatic positioning algorithms that prevent content from appearing outside viewport boundaries, smooth transition animations that enhance user experience, and comprehensive event handling for various interaction patterns including keyboard navigation and focus management.</p>\n\n <p>Integration with other components such as scrollbars and images is seamless, allowing for rich content presentation within window containers. The component supports both programmatic and declarative control patterns, making it suitable for different development approaches and architectural requirements.</p>\n\n <h4>Technical Architecture</h4>\n <p>Built with a modular composition-based architecture, the window component consists of multiple specialized subcomponents that handle specific aspects of functionality. This includes separate managers for positioning, events, styles, animations, and state persistence, ensuring maintainable and testable code.</p>\n\n <p>The component follows modern Vue.js patterns with reactive state management, composable APIs, and TypeScript support throughout. Performance is optimized through intelligent rendering strategies and minimal DOM manipulation, ensuring smooth operation even in complex applications with multiple concurrent windows.</p>\n </div>\n </template>\n\n <template #footer=\"{classesWindow}\">\n <div class=\"wiki-storybook-flex wiki-storybook-item--padding\">\n <button :class=\"classesWindow.close\" class=\"wiki-storybook-button wiki-storybook-button--text\">Cancel</button>\n <button class=\"wiki-storybook-button\">Confirm</button>\n </div>\n </template>\n </DesignComponent>\n ",
2741
+ stories: [
2742
+ {
2743
+ id: "WindowStaticMode",
2744
+ name: {
2745
+ en: "Static Mode",
2746
+ ru: "Статический режим"
2747
+ },
2748
+ template: "\n <DesignComponent :staticMode=\"true\" adaptive=\"static\">\n <template #default>\n <h4>Static Mode Window</h4>\n <p>This window uses <code>staticMode: true</code>.</p>\n <p>Content displays immediately without animations or modal positioning.</p>\n\n <div class=\"wiki-storybook-info\">\n <strong>Static mode features:</strong>\n <ul>\n <li>No animations</li>\n <li>Embedded in document flow</li>\n <li>Always visible</li>\n </ul>\n </div>\n </template>\n </DesignComponent>\n "
2749
+ },
2750
+ {
2751
+ id: "WindowAxis",
2752
+ name: {
2753
+ en: "Axis positioning",
2754
+ ru: "Позиционирование по оси"
2755
+ },
2756
+ template: "\n <div class=\"wiki-storybook-flex wiki-storybook-gap\">\n <!-- Axis: x -->\n <DesignComponent axis=\"x\" adaptive=\"menu\" :indent=\"8\">\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Open (axis: x)</button>\n </template>\n <template #default>\n <div class=\"wiki-storybook-item--padding\">\n <strong>axis = x</strong>\n <p>Window aligns horizontally (left/right) near the trigger.</p>\n </div>\n </template>\n </DesignComponent>\n\n <!-- Axis: y -->\n <DesignComponent axis=\"y\" adaptive=\"menu\" :indent=\"8\">\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Open (axis: y)</button>\n </template>\n <template #default>\n <div class=\"wiki-storybook-item--padding\">\n <strong>axis = y</strong>\n <p>Window aligns vertically (top/bottom) near the trigger.</p>\n </div>\n </template>\n </DesignComponent>\n\n <!-- Axis: on -->\n <DesignComponent axis=\"on\" adaptive=\"menu\" overElement=\".axis-on-target\">\n <template #control=\"{binds}\">\n <button class=\"wiki-storybook-button\" v-bind=\"binds\">Open (axis: on)</button>\n </template>\n <template #default>\n <div class=\"wiki-storybook-item--padding\">\n <strong>axis = on</strong>\n <p>Window positions over the target element; scroll adjusts to keep it visible.</p>\n <ul style=\"max-height: 160px; overflow: auto; margin: 8px 0; padding-left: 20px;\">\n <li>Item 1</li>\n <li>Item 2</li>\n <li>Item 3</li>\n <li>Item 4</li>\n <li class=\"axis-on-target\"><strong>Focused item (target)</strong></li>\n <li>Item 6</li>\n <li>Item 7</li>\n <li>Item 8</li>\n <li>Item 9</li>\n <li>Item 10</li>\n </ul>\n </div>\n </template>\n </DesignComponent>\n </div>\n "
2757
+ },
2758
+ {
2759
+ id: "WindowVModel",
2760
+ name: {
2761
+ en: "Two-way binding (v-model)",
2762
+ ru: "Двусторонняя привязка (v-model)"
2763
+ },
2764
+ setup: "\n return {\n open: ref(false)\n }\n ",
2765
+ template: "\n <button class=\"wiki-storybook-button\" @click=\"open = true\">Open via v-model ({{ open }})</button>\n\n <DesignComponent v-model:open=\"open\">\n <div class=\"wiki-storybook-item--padding\">Your content here</div>\n </DesignComponent>\n "
2766
+ }
2767
+ ],
2768
+ documentation: {
2769
+ body: "\n<StorybookDescriptions componentName={'Window'} type={'window'}/>\n<StorybookDescriptions componentName={'Window'} type={'classes'}/>\n<StorybookDescriptions componentName={'Window'} type={'staticMode'}/>\n<Canvas of={Component.WindowStaticMode}/>\n<StorybookDescriptions componentName={'Window'} type={'axis'}/>\n<Canvas of={Component.WindowAxis}/>\n<StorybookDescriptions componentName={'Window'} type={'v-model'}/>\n<Canvas of={Component.WindowVModel}/>\n<StorybookDescriptions componentName={'Window'} type={'hooks'}/>\n ",
2770
+ events: "\n<StorybookDescriptions componentName={'Window'} type={'event.window'}/>\n<StorybookDescriptions componentName={'Scrollbar'} type={'emits-include'}/>\n<StorybookDescriptions componentName={'Image'} type={'event.load'}/>\n ",
2771
+ expose: "\n<StorybookDescriptions componentName={'Window'} type={'expose'}/>\n ",
2772
+ slots: "\n<StorybookDescriptions componentName={'Window'} type={'slots'}/>\n "
2773
+ },
2774
+ ai: {
2775
+ render: "\n <div :class=\"classDemo.item\">\n <Window embedded open v-bind=\"args\">\n <template #control=\"{ binds }\">\n <button v-bind=\"binds\">Open Window</button>\n </template>\n <template #title>\n <h3>Window Title</h3>\n </template>\n <template #default>\n <p>Window content goes here. This is a demonstration of the window component capabilities.</p>\n <p>It can contain text, images, forms, or any other content.</p>\n </template>\n <template #footer>\n <div>\n <button>Cancel</button>\n <button>Save</button>\n </div>\n </template>\n </Window>\n </div>\n ",
2776
+ description: "\nVersatile high-performance container orchestration system for Modals, Popups, Dropdowns, and Cards. Automatically manages complex DOM interactions including z-index hierarchy, focus trapping, teleportation, and body scroll locking.\nFeatures an intelligent multi-axis positioning engine (vertical, horizontal, or overlay) with automated viewport collision detection and obstacle avoidance. Includes a full suite of lifecycle hooks, advanced animation management, and integrated support for Scrollbar and Image components within its content area.\nControlled via the v-model:open prop and utilizing the #control, #title, #default, and #footer slots for modular layout. Use as a foundational building block for any overlaid or contextual interface requirement that exceeds the logic of standard Modal or Menu components.\n ",
2777
+ hide: !0
2778
+ }
2779
+ }
2780
+ ];
2781
+ //#endregion
2782
+ export { e as t };