@dxtmisha/wiki 0.24.3 → 0.39.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/package.json +8 -8
  2. package/src/classes/WikiStorybook.ts +92 -1
  3. package/src/classes/WikiStorybookItem.ts +79 -5
  4. package/src/classes/WikiStorybookProp.ts +109 -0
  5. package/src/library.ts +1 -0
  6. package/src/media/descriptions/wikiDescriptions.ts +32 -0
  7. package/src/media/descriptions/wikiDescriptionsAccordion.ts +204 -0
  8. package/src/media/descriptions/wikiDescriptionsActionSheet.ts +264 -0
  9. package/src/media/descriptions/wikiDescriptionsActions.ts +189 -0
  10. package/src/media/descriptions/wikiDescriptionsAnchor.ts +78 -0
  11. package/src/media/descriptions/wikiDescriptionsArrow.ts +214 -0
  12. package/src/media/descriptions/wikiDescriptionsBadge.ts +43 -0
  13. package/src/media/descriptions/wikiDescriptionsBars.ts +33 -0
  14. package/src/media/descriptions/wikiDescriptionsBlock.ts +159 -0
  15. package/src/media/descriptions/wikiDescriptionsButton.ts +32 -1
  16. package/src/media/descriptions/wikiDescriptionsCell.ts +26 -1
  17. package/src/media/descriptions/wikiDescriptionsChip.ts +42 -0
  18. package/src/media/descriptions/wikiDescriptionsChipGroup.ts +199 -0
  19. package/src/media/descriptions/wikiDescriptionsDialog.ts +226 -0
  20. package/src/media/descriptions/wikiDescriptionsField.ts +57 -2
  21. package/src/media/descriptions/wikiDescriptionsFieldCounter.ts +32 -0
  22. package/src/media/descriptions/wikiDescriptionsFieldLabel.ts +22 -0
  23. package/src/media/descriptions/wikiDescriptionsFieldMessage.ts +25 -0
  24. package/src/media/descriptions/wikiDescriptionsIcon.ts +46 -8
  25. package/src/media/descriptions/wikiDescriptionsImage.ts +91 -7
  26. package/src/media/descriptions/wikiDescriptionsInput.ts +313 -0
  27. package/src/media/descriptions/wikiDescriptionsList.ts +31 -0
  28. package/src/media/descriptions/wikiDescriptionsListGroup.ts +57 -0
  29. package/src/media/descriptions/wikiDescriptionsListItem.ts +42 -0
  30. package/src/media/descriptions/wikiDescriptionsListMenu.ts +41 -0
  31. package/src/media/descriptions/wikiDescriptionsMask.ts +42 -0
  32. package/src/media/descriptions/wikiDescriptionsMenu.ts +179 -0
  33. package/src/media/descriptions/wikiDescriptionsModal.ts +200 -0
  34. package/src/media/descriptions/wikiDescriptionsMotionTransform.ts +59 -6
  35. package/src/media/descriptions/wikiDescriptionsPage.ts +155 -0
  36. package/src/media/descriptions/wikiDescriptionsProgress.ts +39 -0
  37. package/src/media/descriptions/wikiDescriptionsRipple.ts +42 -3
  38. package/src/media/descriptions/wikiDescriptionsScrollbar.ts +48 -0
  39. package/src/media/descriptions/wikiDescriptionsSection.ts +152 -0
  40. package/src/media/descriptions/wikiDescriptionsSelect.ts +253 -0
  41. package/src/media/descriptions/wikiDescriptionsSelectValue.ts +107 -0
  42. package/src/media/descriptions/wikiDescriptionsSkeleton.ts +42 -1
  43. package/src/media/descriptions/wikiDescriptionsTextareaAutosize.ts +80 -0
  44. package/src/media/descriptions/wikiDescriptionsTooltip.ts +136 -0
  45. package/src/media/descriptions/wikiDescriptionsWindow.ts +60 -0
  46. package/src/media/functional/en/conversions.mdx +67 -0
  47. package/src/media/functional/en/dataUtils.mdx +25 -0
  48. package/src/media/functional/en/datetimeRef.mdx +1 -1
  49. package/src/media/functional/en/eventRef.mdx +1 -1
  50. package/src/media/functional/en/executionUtils.mdx +58 -0
  51. package/src/media/functional/en/geoFlagRef.mdx +1 -1
  52. package/src/media/functional/en/geoIntlRef.mdx +1 -1
  53. package/src/media/functional/en/geoRef.mdx +2 -2
  54. package/src/media/functional/en/meta.mdx +1206 -0
  55. package/src/media/functional/en/metaManager.mdx +376 -0
  56. package/src/media/functional/en/metaOg.mdx +694 -0
  57. package/src/media/functional/en/metaTwitter.mdx +853 -0
  58. package/src/media/functional/en/reactive.mdx +40 -0
  59. package/src/media/functional/en/refTypes.mdx +1 -1
  60. package/src/media/functional/en/useApiRef.mdx +5 -5
  61. package/src/media/functional/en/useMeta.mdx +431 -0
  62. package/src/media/functional/en/validationUtils.mdx +11 -0
  63. package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.en.mdx +25 -0
  64. package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.ru.mdx +25 -0
  65. package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.vi.mdx +25 -0
  66. package/src/media/functional/functional-basic/functions/isEnter/isEnter.en.mdx +30 -0
  67. package/src/media/functional/functional-basic/functions/isEnter/isEnter.ru.mdx +30 -0
  68. package/src/media/functional/functional-basic/functions/isEnter/isEnter.vi.mdx +30 -0
  69. package/src/media/functional/ru/conversions.mdx +67 -0
  70. package/src/media/functional/ru/dataUtils.mdx +25 -0
  71. package/src/media/functional/ru/datetimeRef.mdx +2 -2
  72. package/src/media/functional/ru/eventRef.mdx +1 -1
  73. package/src/media/functional/ru/executionUtils.mdx +58 -0
  74. package/src/media/functional/ru/geoFlagRef.mdx +1 -1
  75. package/src/media/functional/ru/geoIntl.mdx +2 -2
  76. package/src/media/functional/ru/geoIntlRef.mdx +1 -1
  77. package/src/media/functional/ru/geoRef.mdx +2 -2
  78. package/src/media/functional/ru/listTypes.mdx +1 -1
  79. package/src/media/functional/ru/meta.mdx +1330 -0
  80. package/src/media/functional/ru/metaManager.mdx +376 -0
  81. package/src/media/functional/ru/metaOg.mdx +694 -0
  82. package/src/media/functional/ru/metaTwitter.mdx +853 -0
  83. package/src/media/functional/ru/reactive.mdx +40 -0
  84. package/src/media/functional/ru/refTypes.mdx +2 -2
  85. package/src/media/functional/ru/useApiRef.mdx +5 -5
  86. package/src/media/functional/ru/useMeta.mdx +431 -0
  87. package/src/media/functional/ru/validationUtils.mdx +11 -0
  88. package/src/media/mdx/Accordion/accordion.en.mdx +59 -0
  89. package/src/media/mdx/Accordion/accordion.ru.mdx +59 -0
  90. package/src/media/mdx/Accordion/slots.en.mdx +6 -0
  91. package/src/media/mdx/Accordion/slots.ru.mdx +6 -0
  92. package/src/media/mdx/Accordion/wikiMdxAccordion.ts +25 -0
  93. package/src/media/mdx/ActionSheet/actionSheet.en.mdx +61 -0
  94. package/src/media/mdx/ActionSheet/actionSheet.ru.mdx +61 -0
  95. package/src/media/mdx/ActionSheet/touchClose.en.mdx +21 -0
  96. package/src/media/mdx/ActionSheet/touchClose.ru.mdx +21 -0
  97. package/src/media/mdx/ActionSheet/wikiMdxActionSheet.ts +25 -0
  98. package/src/media/mdx/Actions/actions.en.mdx +48 -0
  99. package/src/media/mdx/Actions/actions.ru.mdx +48 -0
  100. package/src/media/mdx/Actions/flexible.en.mdx +19 -0
  101. package/src/media/mdx/Actions/flexible.ru.mdx +19 -0
  102. package/src/media/mdx/Actions/list.en.mdx +50 -0
  103. package/src/media/mdx/Actions/list.ru.mdx +50 -0
  104. package/src/media/mdx/Actions/wikiMdxActions.ts +31 -0
  105. package/src/media/mdx/Anchor/anchor.en.mdx +34 -0
  106. package/src/media/mdx/Anchor/anchor.ru.mdx +34 -0
  107. package/src/media/mdx/Anchor/expose.go.en.mdx +6 -0
  108. package/src/media/mdx/Anchor/expose.go.ru.mdx +6 -0
  109. package/src/media/mdx/Anchor/hide.en.mdx +28 -0
  110. package/src/media/mdx/Anchor/hide.ru.mdx +28 -0
  111. package/src/media/mdx/Anchor/isCopy.en.mdx +23 -0
  112. package/src/media/mdx/Anchor/isCopy.ru.mdx +23 -0
  113. package/src/media/mdx/Anchor/scroll.en.mdx +34 -0
  114. package/src/media/mdx/Anchor/scroll.ru.mdx +35 -0
  115. package/src/media/mdx/Anchor/wikiMdxAnchor.ts +43 -0
  116. package/src/media/mdx/Arrow/arrow.en.mdx +33 -0
  117. package/src/media/mdx/Arrow/arrow.ru.mdx +33 -0
  118. package/src/media/mdx/Arrow/wikiMdxArrow.ts +19 -0
  119. package/src/media/mdx/Block/block.en.mdx +42 -0
  120. package/src/media/mdx/Block/block.ru.mdx +42 -0
  121. package/src/media/mdx/Block/wikiMdxBlock.ts +19 -0
  122. package/src/media/mdx/ChipGroup/chipGroup.en.mdx +51 -0
  123. package/src/media/mdx/ChipGroup/chipGroup.ru.mdx +51 -0
  124. package/src/media/mdx/ChipGroup/selected.en.mdx +50 -0
  125. package/src/media/mdx/ChipGroup/selected.ru.mdx +50 -0
  126. package/src/media/mdx/ChipGroup/wikiMdxChipGroup.ts +25 -0
  127. package/src/media/mdx/Dialog/buttons.en.mdx +45 -0
  128. package/src/media/mdx/Dialog/buttons.ru.mdx +45 -0
  129. package/src/media/mdx/Dialog/dialog.en.mdx +66 -0
  130. package/src/media/mdx/Dialog/dialog.ru.mdx +65 -0
  131. package/src/media/mdx/Dialog/events.en.mdx +63 -0
  132. package/src/media/mdx/Dialog/events.ru.mdx +63 -0
  133. package/src/media/mdx/Dialog/states.en.mdx +58 -0
  134. package/src/media/mdx/Dialog/states.ru.mdx +57 -0
  135. package/src/media/mdx/Dialog/wikiMdxDialog.ts +37 -0
  136. package/src/media/mdx/Field/arrows.en.mdx +22 -6
  137. package/src/media/mdx/Field/arrows.ru.mdx +22 -6
  138. package/src/media/mdx/Field/slots.en.mdx +0 -13
  139. package/src/media/mdx/Field/slots.ru.mdx +0 -13
  140. package/src/media/mdx/Image/flag.en.mdx +23 -0
  141. package/src/media/mdx/Image/flag.ru.mdx +23 -0
  142. package/src/media/mdx/Image/image.en.mdx +26 -21
  143. package/src/media/mdx/Image/image.ru.mdx +26 -22
  144. package/src/media/mdx/Image/img-tag.en.mdx +105 -0
  145. package/src/media/mdx/Image/img-tag.ru.mdx +105 -0
  146. package/src/media/mdx/Image/wikiMdxImage.ts +12 -0
  147. package/src/media/mdx/Input/currency.en.mdx +38 -0
  148. package/src/media/mdx/Input/currency.ru.mdx +38 -0
  149. package/src/media/mdx/Input/date.en.mdx +53 -0
  150. package/src/media/mdx/Input/date.ru.mdx +53 -0
  151. package/src/media/mdx/Input/input.en.mdx +143 -0
  152. package/src/media/mdx/Input/input.ru.mdx +71 -0
  153. package/src/media/mdx/Input/mask.en.mdx +30 -0
  154. package/src/media/mdx/Input/mask.ru.mdx +30 -0
  155. package/src/media/mdx/Input/number.en.mdx +41 -0
  156. package/src/media/mdx/Input/number.ru.mdx +41 -0
  157. package/src/media/mdx/Input/type.en.mdx +26 -0
  158. package/src/media/mdx/Input/type.ru.mdx +26 -0
  159. package/src/media/mdx/Input/wikiMdxInput.ts +49 -0
  160. package/src/media/mdx/Menu/event.updateValue.en.mdx +29 -0
  161. package/src/media/mdx/Menu/event.updateValue.ru.mdx +30 -0
  162. package/src/media/mdx/Menu/expose.navigation.en.mdx +12 -0
  163. package/src/media/mdx/Menu/expose.navigation.ru.mdx +12 -0
  164. package/src/media/mdx/Menu/navigation.en.mdx +56 -0
  165. package/src/media/mdx/Menu/navigation.ru.mdx +56 -0
  166. package/src/media/mdx/Menu/slots.control.en.mdx +65 -0
  167. package/src/media/mdx/Menu/slots.control.ru.mdx +65 -0
  168. package/src/media/mdx/Menu/slots.en.mdx +2 -24
  169. package/src/media/mdx/Menu/slots.ru.mdx +2 -24
  170. package/src/media/mdx/Menu/wikiMdxMenu.ts +27 -3
  171. package/src/media/mdx/Modal/differences.en.mdx +130 -0
  172. package/src/media/mdx/Modal/differences.ru.mdx +65 -0
  173. package/src/media/mdx/Modal/modal.en.mdx +63 -0
  174. package/src/media/mdx/Modal/modal.ru.mdx +63 -0
  175. package/src/media/mdx/Modal/wikiMdxModal.ts +25 -0
  176. package/src/media/mdx/MotionTransform/expose.motionTransformElement.en.mdx +13 -0
  177. package/src/media/mdx/MotionTransform/expose.motionTransformElement.ru.mdx +14 -0
  178. package/src/media/mdx/MotionTransform/wikiMdxMotionTransform.ts +6 -0
  179. package/src/media/mdx/Page/page.en.mdx +38 -0
  180. package/src/media/mdx/Page/page.ru.mdx +38 -0
  181. package/src/media/mdx/Page/wikiMdxPage.ts +19 -0
  182. package/src/media/mdx/Section/section.en.mdx +38 -0
  183. package/src/media/mdx/Section/section.ru.mdx +38 -0
  184. package/src/media/mdx/Section/wikiMdxSection.ts +19 -0
  185. package/src/media/mdx/Select/select.en.mdx +69 -0
  186. package/src/media/mdx/Select/select.ru.mdx +69 -0
  187. package/src/media/mdx/Select/wikiMdxSelect.ts +19 -0
  188. package/src/media/mdx/SelectValue/selectValue.en.mdx +64 -0
  189. package/src/media/mdx/SelectValue/selectValue.ru.mdx +64 -0
  190. package/src/media/mdx/SelectValue/wikiMdxSelectValue.ts +19 -0
  191. package/src/media/mdx/TextareaAutosize/textarea-autosize.en.mdx +65 -0
  192. package/src/media/mdx/TextareaAutosize/textarea-autosize.ru.mdx +65 -0
  193. package/src/media/mdx/TextareaAutosize/wikiMdxTextareaAutosize.ts +19 -0
  194. package/src/media/mdx/Tooltip/event.tooltip.en.mdx +7 -0
  195. package/src/media/mdx/Tooltip/event.tooltip.ru.mdx +8 -0
  196. package/src/media/mdx/Tooltip/slot.control.en.mdx +14 -0
  197. package/src/media/mdx/Tooltip/slot.control.ru.mdx +14 -0
  198. package/src/media/mdx/Tooltip/tooltip.en.mdx +34 -0
  199. package/src/media/mdx/Tooltip/tooltip.ru.mdx +34 -0
  200. package/src/media/mdx/Tooltip/wikiMdxTooltip.ts +31 -0
  201. package/src/media/mdx/Window/classes.ru.mdx +1 -1
  202. package/src/media/mdx/event/events.actions.en.mdx +44 -0
  203. package/src/media/mdx/event/events.actions.ru.mdx +44 -0
  204. package/src/media/mdx/event/events.inputStandard.en.mdx +6 -0
  205. package/src/media/mdx/event/events.inputStandard.ru.mdx +6 -0
  206. package/src/media/mdx/event/wikiMdxEvent.ts +20 -8
  207. package/src/media/mdx/expose/expose.clear.en.mdx +1 -1
  208. package/src/media/mdx/expose/expose.descriptionId.en.mdx +6 -0
  209. package/src/media/mdx/expose/expose.descriptionId.ru.mdx +6 -0
  210. package/src/media/mdx/expose/expose.id.en.mdx +6 -0
  211. package/src/media/mdx/expose/expose.id.ru.mdx +6 -0
  212. package/src/media/mdx/expose/expose.labelId.en.mdx +6 -0
  213. package/src/media/mdx/expose/expose.labelId.ru.mdx +6 -0
  214. package/src/media/mdx/expose/wikiMdxExpose.ts +18 -0
  215. package/src/media/mdx/slot/body.en.mdx +6 -0
  216. package/src/media/mdx/slot/body.ru.mdx +6 -0
  217. package/src/media/mdx/slot/headline.en.mdx +7 -0
  218. package/src/media/mdx/slot/headline.ru.mdx +6 -0
  219. package/src/media/mdx/slot/leading.en.mdx +7 -0
  220. package/src/media/mdx/slot/leading.ru.mdx +7 -0
  221. package/src/media/mdx/slot/secondary.en.mdx +5 -0
  222. package/src/media/mdx/slot/secondary.ru.mdx +5 -0
  223. package/src/media/mdx/slot/trailing.en.mdx +7 -0
  224. package/src/media/mdx/slot/trailing.ru.mdx +7 -0
  225. package/src/media/mdx/slot/wikiMdxSlot.ts +30 -0
  226. package/src/media/mdx/style/isSkeleton.en.mdx +2 -2
  227. package/src/media/mdx/style/isSkeleton.ru.mdx +2 -2
  228. package/src/media/mdx/value/v-model-selected.en.mdx +28 -0
  229. package/src/media/mdx/value/v-model-selected.ru.mdx +28 -0
  230. package/src/media/mdx/value/v-model.en.mdx +26 -0
  231. package/src/media/mdx/value/v-model.ru.mdx +26 -0
  232. package/src/media/mdx/value/wikiMdxValue.ts +24 -3
  233. package/src/media/mdx/wikiMdx.ts +33 -1
  234. package/src/media/props/wiki.ts +44 -0
  235. package/src/media/props/wikiActions.ts +43 -0
  236. package/src/media/props/wikiActionsInclude.ts +62 -0
  237. package/src/media/props/wikiAnchor.ts +85 -0
  238. package/src/media/props/wikiAria.ts +123 -0
  239. package/src/media/props/wikiArrow.ts +24 -0
  240. package/src/media/props/wikiArrowInclude.ts +45 -0
  241. package/src/media/props/wikiAttributes.ts +143 -0
  242. package/src/media/props/wikiBadge.ts +7 -4
  243. package/src/media/props/wikiBars.ts +7 -6
  244. package/src/media/props/wikiBarsInclude.ts +82 -0
  245. package/src/media/props/wikiButton.ts +8 -4
  246. package/src/media/props/wikiChip.ts +4 -2
  247. package/src/media/props/wikiChipGroup.ts +39 -0
  248. package/src/media/props/wikiDialog.ts +33 -0
  249. package/src/media/props/wikiField.ts +18 -31
  250. package/src/media/props/wikiFieldCounterInclude.ts +87 -0
  251. package/src/media/props/wikiForm.ts +267 -0
  252. package/src/media/props/wikiHook.ts +20 -0
  253. package/src/media/props/wikiIcon.ts +19 -6
  254. package/src/media/props/wikiIconInclude.ts +322 -0
  255. package/src/media/props/wikiImage.ts +97 -20
  256. package/src/media/props/wikiInformation.ts +164 -0
  257. package/src/media/props/wikiInput.ts +34 -0
  258. package/src/media/props/wikiList.ts +10 -4
  259. package/src/media/props/wikiListItem.ts +23 -2
  260. package/src/media/props/wikiMask.ts +2 -12
  261. package/src/media/props/wikiMaskInclude.ts +54 -0
  262. package/src/media/props/wikiMenu.ts +1 -11
  263. package/src/media/props/wikiMotionTransform.ts +7 -13
  264. package/src/media/props/wikiOption.ts +356 -0
  265. package/src/media/props/wikiProgress.ts +8 -5
  266. package/src/media/props/wikiScrollbar.ts +6 -6
  267. package/src/media/props/wikiSelect.ts +68 -0
  268. package/src/media/props/wikiSelectValue.ts +30 -0
  269. package/src/media/props/wikiStatus.ts +34 -57
  270. package/src/media/props/wikiStyle.ts +85 -406
  271. package/src/media/props/wikiTechnical.ts +141 -1
  272. package/src/media/props/wikiText.ts +167 -0
  273. package/src/media/props/wikiTooltip.ts +53 -0
  274. package/src/media/props/wikiValue.ts +22 -276
  275. package/src/media/props/wikiWindow.ts +24 -45
  276. package/src/shims-mdx.d.ts +5 -0
  277. package/src/styles/storybookStyle.scss +3 -1
  278. package/src/types/storybookTypes.ts +48 -4
@@ -0,0 +1,204 @@
1
+ import type { StorybookComponentsDescriptionItem } from '../../types/storybookTypes'
2
+
3
+ /**
4
+ * Descriptions for Accordion component
5
+ *
6
+ * Описания свойств компонента Accordion
7
+ */
8
+ export const wikiDescriptionsAccordion: StorybookComponentsDescriptionItem = {
9
+ name: 'Accordion',
10
+ description: {
11
+ en: 'Expandable container component that reveals and hides content with smooth animations',
12
+ ru: 'Раскрывающийся контейнерный компонент, который показывает и скрывает контент с плавными анимациями'
13
+ },
14
+ possibilities: {
15
+ en: [
16
+ 'smooth expand/collapse animations via MotionTransform',
17
+ 'composable header with label, description, and icons',
18
+ 'automatic arrow rotation indicator',
19
+ 'controlled or uncontrolled state management with v-model',
20
+ 'divider line customization',
21
+ 'custom cell attributes support',
22
+ 'click event handling with custom data',
23
+ 'flexible content slots for header and body'
24
+ ],
25
+ ru: [
26
+ 'плавные анимации раскрытия/сворачивания через MotionTransform',
27
+ 'композитная шапка с меткой, описанием и иконками',
28
+ 'автоматический индикатор поворота стрелки',
29
+ 'управление состоянием контролируемо или неконтролируемо через v-model',
30
+ 'настройка линии разделителя',
31
+ 'поддержка пользовательских атрибутов ячейки',
32
+ 'обработка событий клика с пользовательскими данными',
33
+ 'гибкие слоты контента для шапки и тела'
34
+ ]
35
+ },
36
+ import: [
37
+ 'import { ref } from \'vue\''
38
+ ],
39
+ render: `
40
+ <DesignComponent v-bind="args">
41
+ <template #default>
42
+ <p>Accordion content goes here. This section can contain any HTML elements, components, or text.</p>
43
+ <p>You can include multiple paragraphs, lists, and other structured content to demonstrate the accordion's flexibility and behavior.</p>
44
+ <ul>
45
+ <li>First example item with some details</li>
46
+ <li>Second example showing list formatting</li>
47
+ <li>Third item demonstrating nested content</li>
48
+ </ul>
49
+ <p>Additional text can be added to show how the accordion handles longer content with smooth animations and proper spacing.</p>
50
+ <div style="padding: 12px; background: #f5f5f5; border-radius: 4px; margin-top: 8px;">
51
+ <strong>Note:</strong> This is a highlighted section within the accordion body.
52
+ </div>
53
+ <p style="margin-top: 12px;">The accordion component automatically manages the height transitions and ensures all content is properly displayed when expanded.</p>
54
+ </template>
55
+ </DesignComponent>
56
+ <DesignComponent v-bind="args">
57
+ <template #default>
58
+ <h4 style="margin-top: 0;">Features Overview</h4>
59
+ <p>This accordion demonstrates different content types and layout possibilities:</p>
60
+ <ol>
61
+ <li>Numbered lists for sequential information</li>
62
+ <li>Headings for content structure</li>
63
+ <li>Mixed content types in a single container</li>
64
+ </ol>
65
+ <p>The component supports various HTML elements and maintains proper spacing throughout the animation cycle.</p>
66
+ <div style="display: flex; gap: 8px; margin-top: 12px;">
67
+ <span style="padding: 4px 8px; background: #e3f2fd; border-radius: 4px; font-size: 12px;">Tag 1</span>
68
+ <span style="padding: 4px 8px; background: #f3e5f5; border-radius: 4px; font-size: 12px;">Tag 2</span>
69
+ <span style="padding: 4px 8px; background: #e8f5e9; border-radius: 4px; font-size: 12px;">Tag 3</span>
70
+ </div>
71
+ </template>
72
+ </DesignComponent>
73
+ <DesignComponent v-bind="args">
74
+ <template #default>
75
+ <p>This is the third variant showing simplified content structure.</p>
76
+ <p>Accordion components support various content formats while maintaining consistent behavior.</p>
77
+ <h5>Key Features:</h5>
78
+ <ul>
79
+ <li>Flexible content layouts</li>
80
+ <li>Smooth animations</li>
81
+ <li>Easy customization</li>
82
+ </ul>
83
+ </template>
84
+ </DesignComponent>
85
+ `,
86
+ stories: [
87
+ {
88
+ id: 'AccordionVModel',
89
+ name: {
90
+ en: 'Two-way binding (v-model)',
91
+ ru: 'Двусторонняя привязка (v-model)'
92
+ },
93
+ setup: `
94
+ return {
95
+ open: ref(false)
96
+ }
97
+ `,
98
+ template: `
99
+ <div class="wiki-storybook-item--padding">
100
+ <button class="wiki-storybook-button" @click="open = !open">Toggle ({{ open }})</button>
101
+ </div>
102
+ <DesignComponent v-model:open="open" label="Settings" description="Click to expand" icon="settings">
103
+ <template #default>
104
+ <div class="wiki-storybook-item--padding">
105
+ <p>Content is {{ open ? 'visible' : 'hidden' }}</p>
106
+ <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>
107
+ <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>
108
+ </div>
109
+ </template>
110
+ </DesignComponent>
111
+ `
112
+ },
113
+ {
114
+ id: 'AccordionSlots',
115
+ name: {
116
+ en: 'Slots usage',
117
+ ru: 'Использование слотов'
118
+ },
119
+ template: `
120
+ <DesignComponent label="Default label" description="Default description" icon="settings">
121
+ <template #label>Custom label slot</template>
122
+ <template #description>Custom description slot</template>
123
+ <template #caption>Custom caption slot</template>
124
+ <template #trailing>Trailing slot</template>
125
+ <template #body>Body slot content</template>
126
+ <template #default>
127
+ <p>Custom default slot content (main accordion body)</p>
128
+ </template>
129
+ </DesignComponent>
130
+ `
131
+ }
132
+ ],
133
+ documentation: {
134
+ body: `
135
+ <StorybookDescriptions componentName={'Accordion'} type={'accordion'}/>
136
+
137
+ <StorybookDescriptions componentName={'MotionTransform'} type={'v-model'}/>
138
+ <Canvas of={Component.AccordionVModel}/>
139
+ `,
140
+ events: `
141
+ <StorybookDescriptions componentName={'Event'} type={'click'}/>
142
+ <StorybookDescriptions componentName={'MotionTransform'} type={'events'}/>
143
+ `,
144
+ expose: `
145
+ <StorybookDescriptions componentName={'MotionTransform'} type={'expose.isShow'}/>
146
+ <StorybookDescriptions componentName={'Window'} type={'expose'}/>
147
+ <StorybookDescriptions componentName={'MotionTransform'} type={'expose.motionTransformElement'}/>
148
+ `,
149
+ slots: `
150
+ <Canvas of={Component.AccordionSlots}/>
151
+ <StorybookDescriptions componentName={'Accordion'} type={'slots'}/>
152
+ <StorybookDescriptions componentName={'Slot'} type={'label'}/>
153
+ <StorybookDescriptions componentName={'Slot'} type={'caption'}/>
154
+ <StorybookDescriptions componentName={'Slot'} type={'description'}/>
155
+ <StorybookDescriptions componentName={'Cell'} type={'slots'}/>
156
+ `
157
+ },
158
+ ai: {
159
+ render: `
160
+ <div :class="classDemo.item">
161
+ <Accordion :open="true" :auto-close="false" v-bind="args">
162
+ <div class="wiki-storybook-item--padding">
163
+ Hidden content
164
+ </div>
165
+ </Accordion>
166
+ </div>
167
+ `,
168
+ description: `
169
+ Accordion is a vertically stacking interactive component that allows users to reveal or hide content sections.
170
+ It consists of a header (trigger) and a body (content) that expands/collapses with a smooth animation.
171
+
172
+ **Key Features:**
173
+ 1. **Header (Trigger):**
174
+ - Uses the \`Cell\` component structure.
175
+ - Supports \`label\` (title), \`description\` (subtitle), and \`icon\` (leading icon).
176
+ - Includes a rotating arrow indicator (\`iconArrowDown\`) to show state.
177
+
178
+ 2. **Animation:**
179
+ - Uses \`MotionTransform\` for smooth height transitions.
180
+ - Content is unmounted or hidden when collapsed (depending on configuration).
181
+
182
+ 3. **Interaction:**
183
+ - Toggles on click or keyboard interaction (Enter/Space).
184
+ - Controlled via \`v-model:open\`.
185
+
186
+ **Usage Examples:**
187
+
188
+ - **Basic:**
189
+ \`<Accordion label="Settings">
190
+ <p>Settings content...</p>
191
+ </Accordion>\`
192
+
193
+ - **With Description and Icon:**
194
+ \`<Accordion label="Profile" description="Manage your account" icon="person">
195
+ <ProfileForm />
196
+ </Accordion>\`
197
+
198
+ - **Controlled:**
199
+ \`<Accordion v-model:open="isOpen" label="Controlled">
200
+ Content
201
+ </Accordion>\`
202
+ `
203
+ }
204
+ }
@@ -0,0 +1,264 @@
1
+ import type { StorybookComponentsDescriptionItem } from '../../types/storybookTypes'
2
+
3
+ /**
4
+ * Descriptions for ActionSheet component properties
5
+ *
6
+ * Описания свойств компонента ActionSheet
7
+ */
8
+ export const wikiDescriptionsActionSheet: StorybookComponentsDescriptionItem = {
9
+ name: 'ActionSheet',
10
+ description: {
11
+ en: 'Mobile-optimized modal component for displaying a list of actions or choices that slide up from the bottom',
12
+ ru: 'Мобильно-оптимизированный модальный компонент для отображения списка действий или выборов, выдвигающийся снизу'
13
+ },
14
+ possibilities: {
15
+ en: [
16
+ 'bottom-anchored modal panel with smooth slide-up animation',
17
+ 'displays primary and secondary action lists',
18
+ 'supports cancel button and custom actions',
19
+ 'mobile-first design with touch-friendly interface',
20
+ 'backdrop click to close functionality',
21
+ 'keyboard accessibility support',
22
+ 'integration with List and Actions components',
23
+ 'customizable appearance and positioning',
24
+ 'automatic height adjustment based on content',
25
+ 'support for grouped actions with separators'
26
+ ],
27
+ ru: [
28
+ 'модальная панель, закрепленная снизу, с плавной анимацией выдвижения',
29
+ 'отображает основной и второстепенный списки действий',
30
+ 'поддержка кнопки отмены и пользовательских действий',
31
+ 'мобильно-ориентированный дизайн с удобным сенсорным интерфейсом',
32
+ 'закрытие при клике на подложку',
33
+ 'поддержка доступности с клавиатуры',
34
+ 'интеграция с компонентами List и Actions',
35
+ 'настраиваемый внешний вид и позиционирование',
36
+ 'автоматическая подстройка высоты под контент',
37
+ 'поддержка группировки действий с разделителями'
38
+ ]
39
+ },
40
+ import: [
41
+ 'import { ref } from \'vue\''
42
+ ],
43
+ render: `
44
+ <DesignComponent v-bind="args">
45
+ <template #control="{binds}">
46
+ <button class="wiki-storybook-button" v-bind="binds">Open Action Sheet</button>
47
+ </template>
48
+
49
+ <template #title>
50
+ Action Sheet Menu
51
+ </template>
52
+
53
+ <template #default>
54
+ <h4>Mobile Action Sheet Component</h4>
55
+ <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>
56
+
57
+ <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>
58
+
59
+ <h4>Key Features</h4>
60
+ <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>
61
+
62
+ <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>
63
+ </template>
64
+ </DesignComponent>
65
+ `,
66
+ stories: [
67
+ {
68
+ id: 'ActionSheetVModel',
69
+ name: {
70
+ en: 'Two-way binding (v-model)',
71
+ ru: 'Двусторонняя привязка (v-model)'
72
+ },
73
+ setup: `
74
+ return {
75
+ open: ref(false)
76
+ }
77
+ `,
78
+ template: `
79
+ <button class="wiki-storybook-button" @click="open = true">Open via v-model ({{ open }})</button>
80
+
81
+ <DesignComponent v-model:open="open">
82
+ <div class="wiki-storybook-item--padding">Your content here</div>
83
+ </DesignComponent>
84
+ `
85
+ },
86
+ {
87
+ id: 'ActionSheetTouchClose',
88
+ name: {
89
+ en: 'Touch gesture to close',
90
+ ru: 'Закрытие жестом'
91
+ },
92
+ setup: `
93
+ return {
94
+ openWithTouch: ref(false),
95
+ openWithoutTouch: ref(false)
96
+ }
97
+ `,
98
+ template: `
99
+ <div class="wiki-storybook-flex">
100
+ <button class="wiki-storybook-button" @click="openWithTouch = true">
101
+ With Touch Close ({{ openWithTouch }})
102
+ </button>
103
+ <button class="wiki-storybook-button" @click="openWithoutTouch = true">
104
+ Without Touch Close ({{ openWithoutTouch }})
105
+ </button>
106
+ </div>
107
+
108
+ <DesignComponent v-model:open="openWithTouch" :touchClose="true">
109
+ <template #title>
110
+ Swipe Down to Close
111
+ </template>
112
+ <template #default>
113
+ <div class="wiki-storybook-item--padding">
114
+ <div class="wiki-storybook-info">
115
+ <strong>Touch Close: Enabled</strong>
116
+ <p>This action sheet can be closed by swiping down on the title area. Notice the tab indicator at the top that signals the drag interaction.</p>
117
+ <p>Try swiping down on the header to close this panel. This follows iOS and Material Design patterns for mobile interfaces.</p>
118
+ </div>
119
+ </div>
120
+ </template>
121
+ </DesignComponent>
122
+
123
+ <DesignComponent v-model:open="openWithoutTouch" :touchClose="false">
124
+ <template #title>
125
+ No Swipe Gesture
126
+ </template>
127
+ <template #default>
128
+ <div class="wiki-storybook-item--padding">
129
+ <div class="wiki-storybook-info">
130
+ <strong>Touch Close: Disabled</strong>
131
+ <p>This action sheet cannot be closed by swiping down. The tab indicator is not displayed, and touch gestures are disabled.</p>
132
+ <p>You must use the backdrop click or close button to dismiss this panel. This is useful when you want to prevent accidental dismissal.</p>
133
+ </div>
134
+ </div>
135
+ </template>
136
+ <template #footer="{classesWindow}">
137
+ <button :class="classesWindow.close" class="wiki-storybook-button wiki-storybook-button--text">Close</button>
138
+ </template>
139
+ </DesignComponent>
140
+ `
141
+ },
142
+ {
143
+ id: 'ActionSheetAllSlots',
144
+ name: {
145
+ en: 'All slots demonstration',
146
+ ru: 'Демонстрация всех слотов'
147
+ },
148
+ template: `
149
+ <DesignComponent>
150
+ <template #control="{binds}">
151
+ <button class="wiki-storybook-button" v-bind="binds">Open Action Sheet with All Slots</button>
152
+ </template>
153
+
154
+ <template #title>
155
+ Action Sheet Title Slot
156
+ </template>
157
+
158
+ <template #default>
159
+ <div class="wiki-storybook-item--padding">
160
+ <h4>Default Slot Content</h4>
161
+ <p>This is the main content area of the action sheet. You can place any content here including action lists, forms, or other components.</p>
162
+
163
+ <div class="wiki-storybook-info">
164
+ <strong>Available slots:</strong>
165
+ <ul>
166
+ <li><code>#control</code> - trigger button or element</li>
167
+ <li><code>#title</code> - action sheet header/title area</li>
168
+ <li><code>#default</code> - main content area</li>
169
+ <li><code>#footer</code> - footer with actions or cancel button</li>
170
+ </ul>
171
+ </div>
172
+
173
+ <p>Each slot receives control props that allow you to interact with the action sheet programmatically, such as closing it or accessing window classes. The component slides up from the bottom with touch gesture support.</p>
174
+ </div>
175
+ </template>
176
+
177
+ <template #footer="{classesWindow}">
178
+ <div class="wiki-storybook-flex wiki-storybook-item--padding">
179
+ <button :class="classesWindow.close" class="wiki-storybook-button wiki-storybook-button--text">Cancel</button>
180
+ <button class="wiki-storybook-button">Confirm</button>
181
+ </div>
182
+ </template>
183
+ </DesignComponent>
184
+ `
185
+ }
186
+ ],
187
+ documentation: {
188
+ body: `
189
+ <StorybookDescriptions componentName={'ActionSheet'} type={'actionSheet'}/>
190
+
191
+ <StorybookDescriptions componentName={'ActionSheet'} type={'touchClose'}/>
192
+ <Canvas of={Component.ActionSheetTouchClose}/>
193
+
194
+ <StorybookDescriptions componentName={'Window'} type={'v-model'}/>
195
+ <Canvas of={Component.ActionSheetVModel}/>
196
+
197
+ <StorybookDescriptions componentName={'Modal'} type={'differences'}/>
198
+ `,
199
+ events: `
200
+ <StorybookDescriptions componentName={'Window'} type={'event.window'}/>
201
+ <StorybookDescriptions componentName={'Event'} type={'bars'}/>
202
+ `,
203
+ expose: `
204
+ <StorybookDescriptions componentName={'Window'} type={'expose'}/>
205
+ `,
206
+ slots: `
207
+ <Canvas of={Component.ActionSheetAllSlots}/>
208
+ <StorybookDescriptions componentName={'Window'} type={'slots'}/>
209
+ `
210
+ },
211
+ ai: {
212
+ render: `
213
+ <div :class="classDemo.item" style="min-width: 800px;">
214
+ <ActionSheet embedded open v-bind="args">
215
+ <template #control="{ binds }">
216
+ <button v-bind="binds">Open Menu</button>
217
+ </template>
218
+ <template #default>Content goes here...</template>
219
+ </ActionSheet>
220
+ </div>
221
+ `,
222
+ description: `
223
+ ActionSheet is a mobile-optimized modal component that slides up from the bottom of the screen (Bottom Sheet).
224
+ It is designed to present a set of actions, choices, or secondary content, following standard mobile interface patterns (iOS/Material).
225
+
226
+ **Note:** The \`embedded\` prop is used only for documentation examples to render the component inline. Do not use it in production code.
227
+
228
+ **Key Features:**
229
+ 1. **Positioning & Animation:**
230
+ - Anchored to the bottom of the viewport.
231
+ - Slides up with an animation when opened.
232
+ - Renders a backdrop (overlay) to block background interactions.
233
+
234
+ 2. **Mobile Interactions:**
235
+ - **Touch Close:** Supports swiping down on the header to close the sheet (controlled by the \`touchClose\` prop).
236
+ - **Backdrop:** Clicking the overlay closes the sheet.
237
+ - **Scroll:** Automatically handles internal scrolling if content exceeds height.
238
+
239
+ 3. **Slots Structure:**
240
+ - \`#control\` - The trigger element (e.g., a button). Receives \`binds\` to toggle visibility.
241
+ - \`#title\` - The header area. Often contains the title and the drag handle (indicator).
242
+ - \`#default\` - The main content area.
243
+ - \`#footer\` - The bottom area, typically used for a "Cancel" button or primary actions.
244
+
245
+ **Usage Examples:**
246
+
247
+ - **With Trigger:**
248
+ \`<ActionSheet>
249
+ <template #control="{ binds }">
250
+ <button v-bind="binds">Open Menu</button>
251
+ </template>
252
+ <template #title>Select Option</template>
253
+ <template #default>
254
+ <p>List of options...</p>
255
+ </template>
256
+ </ActionSheet>\`
257
+
258
+ - **Programmatic Control:**
259
+ \`<ActionSheet v-model:open="isOpen" touch-close>
260
+ <template #default>Content</template>
261
+ </ActionSheet>\`
262
+ `
263
+ }
264
+ }
@@ -0,0 +1,189 @@
1
+ import type { StorybookComponentsDescriptionItem } from '../../types/storybookTypes'
2
+
3
+ /**
4
+ * Descriptions for Actions component properties
5
+ *
6
+ * Описания свойств компонента Actions
7
+ */
8
+ export const wikiDescriptionsActions: StorybookComponentsDescriptionItem = {
9
+ name: 'Actions',
10
+ description: {
11
+ en: 'A flexible container component for organizing action buttons with primary and secondary groups, supporting various alignment options and adaptive behavior.',
12
+ ru: 'Гибкий компонент-контейнер для организации кнопок действий с основной и вторичной группами, поддерживающий различные варианты выравнивания и адаптивное поведение.'
13
+ },
14
+ possibilities: {
15
+ en: [
16
+ 'Organizes action buttons into primary and secondary groups',
17
+ 'Supports multiple alignment modes: left, right, center, block',
18
+ 'Flexible layout that adapts to available space',
19
+ 'Automatic spacing between button groups',
20
+ 'Customizable button attributes for each group',
21
+ 'Responsive behavior with adaptive breakpoints',
22
+ 'Supports both array-based and slot-based button rendering'
23
+ ],
24
+ ru: [
25
+ 'Организует кнопки действий в основные и вторичные группы',
26
+ 'Поддерживает несколько режимов выравнивания: left, right, center, block',
27
+ 'Гибкая раскладка, адаптирующаяся к доступному пространству',
28
+ 'Автоматическое расстояние между группами кнопок',
29
+ 'Настраиваемые атрибуты кнопок для каждой группы',
30
+ 'Адаптивное поведение с точками перехода',
31
+ 'Поддерживает рендеринг кнопок через массив и слоты'
32
+ ]
33
+ },
34
+ import: [],
35
+ stories: [
36
+ {
37
+ id: 'ActionsBasic',
38
+ name: {
39
+ en: 'Basic',
40
+ ru: 'Базовые'
41
+ },
42
+ template: `
43
+ <div class="wiki-storybook-flex-column">
44
+ <DesignComponent
45
+ :list="[
46
+ { label: 'Cancel' },
47
+ { label: 'Save', primary: true }
48
+ ]"
49
+ />
50
+ </div>
51
+ `
52
+ },
53
+ {
54
+ id: 'ActionsAlignment',
55
+ name: {
56
+ en: 'Alignment',
57
+ ru: 'Выравнивание'
58
+ },
59
+ template: `
60
+ <div class="wiki-storybook-flex-column">
61
+ <DesignComponent
62
+ align="left"
63
+ :list="[
64
+ { label: 'Cancel' },
65
+ { label: 'Save', primary: true }
66
+ ]"
67
+ />
68
+ <DesignComponent
69
+ align="center"
70
+ :list="[
71
+ { label: 'Cancel' },
72
+ { label: 'Save', primary: true }
73
+ ]"
74
+ />
75
+ <DesignComponent
76
+ align="right"
77
+ :list="[
78
+ { label: 'Cancel' },
79
+ { label: 'Save', primary: true }
80
+ ]"
81
+ />
82
+ <DesignComponent
83
+ align="block"
84
+ :list="[
85
+ { label: 'Cancel' },
86
+ { label: 'Save', primary: true }
87
+ ]"
88
+ />
89
+ </div>
90
+ `
91
+ },
92
+ {
93
+ id: 'ActionsPrimarySecondary',
94
+ name: {
95
+ en: 'Primary & Secondary Groups',
96
+ ru: 'Основная и вторичная группы'
97
+ },
98
+ template: `
99
+ <div class="wiki-storybook-flex-column">
100
+ <DesignComponent
101
+ :list="[
102
+ { label: 'Cancel' },
103
+ { label: 'Save', primary: true }
104
+ ]"
105
+ :list-secondary="[
106
+ { label: 'Delete', text: true }
107
+ ]"
108
+ />
109
+ </div>
110
+ `
111
+ },
112
+ {
113
+ id: 'ActionsFlexible',
114
+ name: {
115
+ en: 'Flexible Layout',
116
+ ru: 'Гибкая раскладка'
117
+ },
118
+ template: `
119
+ <div class="wiki-storybook-flex-column">
120
+ <DesignComponent
121
+ flexible="adaptive"
122
+ :list="[
123
+ { label: 'Cancel' },
124
+ { label: 'Apply' },
125
+ { label: 'Save', primary: true }
126
+ ]"
127
+ />
128
+ </div>
129
+ `
130
+ },
131
+ {
132
+ id: 'ActionsCustomButtons',
133
+ name: {
134
+ en: 'Custom Button Styles',
135
+ ru: 'Пользовательские стили кнопок'
136
+ },
137
+ template: `
138
+ <div class="wiki-storybook-flex-column">
139
+ <DesignComponent
140
+ :list="[
141
+ { label: 'Cancel', outlined: true },
142
+ { label: 'Save', primary: true }
143
+ ]"
144
+ :button-attrs="{ size: 'large' }"
145
+ />
146
+ </div>
147
+ `
148
+ }
149
+ ],
150
+ documentation: {
151
+ body: `
152
+ <StorybookDescriptions componentName={'Actions'} type={'actions'}/>
153
+ <StorybookDescriptions componentName={'Actions'} type={'list'}/>
154
+ <StorybookDescriptions componentName={'Actions'} type={'flexible'}/>
155
+ `,
156
+ slots: `
157
+ <StorybookDescriptions componentName={'Slot'} type={'default'}/>
158
+ <StorybookDescriptions componentName={'Slot'} type={'secondary'}/>
159
+ `
160
+ },
161
+ ai: {
162
+ description: `
163
+ Actions is a layout component for organizing groups of buttons, typically used in dialog footers, card actions, or form controls.
164
+ It manages spacing, alignment, and the separation between primary and secondary action groups.
165
+
166
+ **Key Features:**
167
+ 1. **Groups:**
168
+ - \`list\`: Array of props for the main group of buttons (usually right-aligned or primary).
169
+ - \`listSecondary\`: Array of props for the secondary group (usually left-aligned).
170
+
171
+ 2. **Alignment (\`align\`):**
172
+ - \`left\`: Aligns all buttons to the left.
173
+ - \`center\`: Centers the buttons.
174
+ - \`right\`: Aligns all buttons to the right (default for dialogs).
175
+ - \`block\`: Stretches buttons to fill the width.
176
+
177
+ 3. **Button Configuration:**
178
+ - Items in \`list\` and \`listSecondary\` are passed directly to the \`Button\` component.
179
+ - \`buttonAttrs\`: Common props applied to all buttons in the main list.
180
+ - \`buttonSecondaryAttrs\`: Common props applied to all buttons in the secondary list.
181
+
182
+ **Usage Examples:**
183
+
184
+ - **Dialog Footer:** \`<Actions align="right" :list="[{ label: 'Cancel' }, { label: 'Ok', primary: true }]" />\`
185
+ - **Split Actions:** \`<Actions :list="[{ label: 'Save' }]" :listSecondary="[{ label: 'Delete', text: true }]" />\` (Save on right, Delete on left)
186
+ - **Full Width:** \`<Actions align="block" :list="[{ label: 'Login', primary: true }]" />\`
187
+ `
188
+ }
189
+ }