@dxtmisha/scripts 0.4.7 → 0.5.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 (140) hide show
  1. package/bin/ai-doc.ts +9 -0
  2. package/package.json +9 -7
  3. package/src/classes/Ai/AiAbstract.ts +94 -13
  4. package/src/classes/Ai/AiDoc.ts +62 -0
  5. package/src/classes/Ai/AiDocItem.ts +20 -0
  6. package/src/classes/Ai/AiDocItemAbstract.ts +198 -0
  7. package/src/classes/Ai/AiDocItemClasses.ts +20 -0
  8. package/src/classes/Ai/AiDocItemComposables.ts +13 -0
  9. package/src/classes/Ai/AiDocType.ts +45 -0
  10. package/src/classes/Ai/AiGoogle.ts +7 -29
  11. package/src/classes/Ai/AiGoogleCli.ts +24 -0
  12. package/src/classes/Ai/AiGoogleCliLite.ts +144 -0
  13. package/src/classes/Ai/AiGoogleLite.ts +77 -0
  14. package/src/classes/BuildItem.ts +176 -0
  15. package/src/classes/Component/ComponentCreator.ts +2 -0
  16. package/src/classes/Component/ComponentItem.ts +3 -1
  17. package/src/classes/Component/ComponentWiki.ts +107 -190
  18. package/src/classes/Component/ComponentWikiFile.ts +102 -15
  19. package/src/classes/Design/DesignCommand.ts +3 -1
  20. package/src/classes/Design/DesignComponent.ts +3 -1
  21. package/src/classes/Design/DesignConstructor.ts +3 -1
  22. package/src/classes/Design/DesignConstructors.ts +3 -1
  23. package/src/classes/Design/DesignReplace.ts +3 -1
  24. package/src/classes/Design/DesignStructure.ts +3 -1
  25. package/src/classes/Design/DesignStructureClasses.ts +3 -1
  26. package/src/classes/Design/DesignStructureItemAbstract.ts +2 -0
  27. package/src/classes/Design/DesignStructureRead.ts +3 -1
  28. package/src/classes/Design/DesignStructureStyles.ts +2 -0
  29. package/src/classes/Design/DesignTypescript.ts +1 -1
  30. package/src/classes/Design/DesignUi.ts +3 -1
  31. package/src/classes/Design/DesignWiki.ts +3 -1
  32. package/src/classes/Git/GitRead.ts +258 -0
  33. package/src/classes/Library/LibraryExport.ts +2 -0
  34. package/src/classes/Library/LibraryFlags.ts +3 -1
  35. package/src/classes/Library/LibraryItems.ts +3 -1
  36. package/src/classes/Library/LibraryMedia.ts +3 -1
  37. package/src/classes/Package/PackageInit.ts +2 -0
  38. package/src/classes/Package/PackageItem.ts +2 -0
  39. package/src/classes/Properties/Properties.ts +3 -1
  40. package/src/classes/Properties/PropertiesCache.ts +3 -1
  41. package/src/classes/Properties/PropertiesConfig.ts +21 -0
  42. package/src/classes/Properties/PropertiesConvector.ts +3 -1
  43. package/src/classes/Properties/PropertiesFile.ts +11 -1
  44. package/src/classes/Properties/PropertiesImport.ts +3 -1
  45. package/src/classes/Properties/PropertiesItems.ts +3 -1
  46. package/src/classes/Properties/PropertiesKeys.ts +3 -1
  47. package/src/classes/Properties/PropertiesMain.ts +3 -1
  48. package/src/classes/Properties/PropertiesPalette.ts +3 -1
  49. package/src/classes/Properties/PropertiesPath.ts +3 -1
  50. package/src/classes/Properties/PropertiesScss.ts +3 -1
  51. package/src/classes/Properties/PropertiesSeparator.ts +3 -1
  52. package/src/classes/Properties/PropertiesSettings.ts +3 -1
  53. package/src/classes/Properties/PropertiesStandard.ts +3 -1
  54. package/src/classes/Properties/PropertiesTool.ts +3 -1
  55. package/src/classes/Properties/PropertiesTypes.ts +3 -1
  56. package/src/classes/Properties/PropertiesValues.ts +2 -0
  57. package/src/classes/Properties/PropertiesWrap.ts +3 -1
  58. package/src/classes/Properties/convector/convectorColor.ts +2 -0
  59. package/src/classes/Properties/convector/convectorFontFamilies.ts +2 -0
  60. package/src/classes/Properties/convector/convectorShadow.ts +3 -1
  61. package/src/classes/Properties/convector/convectorTypography.ts +3 -1
  62. package/src/classes/Properties/to/PropertiesToAbstract.ts +2 -0
  63. package/src/classes/Properties/to/PropertiesToAnimate.ts +3 -1
  64. package/src/classes/Properties/to/PropertiesToClass.ts +2 -0
  65. package/src/classes/Properties/to/PropertiesToClone.ts +3 -1
  66. package/src/classes/Properties/to/PropertiesToComponent.ts +2 -0
  67. package/src/classes/Properties/to/PropertiesToDrag.ts +3 -1
  68. package/src/classes/Properties/to/PropertiesToDuplicate.ts +3 -1
  69. package/src/classes/Properties/to/PropertiesToFull.ts +2 -0
  70. package/src/classes/Properties/to/PropertiesToLink.ts +3 -1
  71. package/src/classes/Properties/to/PropertiesToMedia.ts +3 -1
  72. package/src/classes/Properties/to/PropertiesToMulti.ts +3 -1
  73. package/src/classes/Properties/to/PropertiesToNone.ts +3 -1
  74. package/src/classes/Properties/to/PropertiesToPalette.ts +3 -1
  75. package/src/classes/Properties/to/PropertiesToProperty.ts +3 -1
  76. package/src/classes/Properties/to/PropertiesToRemove.ts +3 -1
  77. package/src/classes/Properties/to/PropertiesToReplace.ts +2 -0
  78. package/src/classes/Properties/to/PropertiesToRoot.ts +2 -0
  79. package/src/classes/Properties/to/PropertiesToSimilar.ts +3 -1
  80. package/src/classes/Properties/to/PropertiesToSort.ts +3 -1
  81. package/src/classes/Properties/to/PropertiesToState.ts +3 -1
  82. package/src/classes/Properties/to/PropertiesToStyle.ts +3 -1
  83. package/src/classes/Properties/to/PropertiesToSub.ts +2 -0
  84. package/src/classes/Properties/to/PropertiesToSubclass.ts +2 -0
  85. package/src/classes/Properties/to/PropertiesToVar.ts +3 -1
  86. package/src/classes/Properties/to/PropertiesToVariable.ts +3 -1
  87. package/src/classes/Styles/Styles.ts +3 -1
  88. package/src/classes/Styles/StylesClasses.ts +3 -1
  89. package/src/classes/Styles/StylesProperties.ts +2 -0
  90. package/src/classes/Styles/StylesRoot.ts +2 -0
  91. package/src/classes/Styles/StylesTool.ts +3 -1
  92. package/src/classes/Styles/to/StylesToAbstract.ts +3 -1
  93. package/src/classes/Styles/to/StylesToAnimate.ts +2 -0
  94. package/src/classes/Styles/to/StylesToClass.ts +2 -0
  95. package/src/classes/Styles/to/StylesToClassFull.ts +2 -0
  96. package/src/classes/Styles/to/StylesToContainer.ts +2 -0
  97. package/src/classes/Styles/to/StylesToMedia.ts +2 -0
  98. package/src/classes/Styles/to/StylesToProperty.ts +3 -1
  99. package/src/classes/Styles/to/StylesToRoot.ts +2 -0
  100. package/src/classes/Styles/to/StylesToSelector.ts +3 -1
  101. package/src/classes/Styles/to/StylesToVar.ts +3 -1
  102. package/src/classes/Styles/to/StylesToVirtual.ts +2 -0
  103. package/src/composables/useAi.ts +3 -0
  104. package/src/config.ts +11 -0
  105. package/src/functions/getComponentPaths.ts +2 -0
  106. package/src/functions/getConfigAi.ts +13 -0
  107. package/src/functions/getConstructorProperties.ts +3 -1
  108. package/src/functions/getNameDirByPaths.ts +2 -0
  109. package/src/functions/toPathStandardSep.ts +2 -0
  110. package/src/library-ai.ts +4 -0
  111. package/src/library.ts +30 -105
  112. package/src/media/ai/ai-doc-types.ts +21 -0
  113. package/src/media/properties/css.ts +4 -1
  114. package/src/media/properties/listSort.ts +1 -1
  115. package/src/media/properties/style.ts +2 -0
  116. package/src/media/templates/component/DesignComponent.vue +1 -1
  117. package/src/media/templates/constructors/ConstructorsDesign.tsx +4 -2
  118. package/src/media/templates/packages/library/package.json +2 -1
  119. package/src/media/templates/prompts/aiDocClassPrompt.en.txt +66 -0
  120. package/src/media/templates/prompts/aiDocClassPrompt.ru.txt +64 -0
  121. package/src/media/templates/prompts/aiDocComposablePrompt.en.txt +67 -0
  122. package/src/media/templates/prompts/aiDocComposablePrompt.ru.txt +67 -0
  123. package/src/media/templates/prompts/aiDocFunctionPrompt.en.txt +57 -0
  124. package/src/media/templates/prompts/aiDocFunctionPrompt.ru.txt +57 -0
  125. package/src/media/templates/prompts/componentPrompt.en.txt +105 -0
  126. package/src/media/templates/prompts/componentPrompt.ru.txt +105 -0
  127. package/src/media/templates/prompts/demoClassEn.mdx +111 -0
  128. package/src/media/templates/prompts/demoClassRu.mdx +111 -0
  129. package/src/media/templates/prompts/demoComponentEn.mdx +282 -0
  130. package/src/media/templates/prompts/demoComponentRu.mdx +282 -0
  131. package/src/media/templates/prompts/demoComposableEn.mdx +103 -0
  132. package/src/media/templates/prompts/demoComposableRu.mdx +103 -0
  133. package/src/media/templates/prompts/demoDocEn.mdx +30 -0
  134. package/src/media/templates/prompts/demoDocRu.mdx +30 -0
  135. package/src/media/templates/viteComponentTemplateConfig.ts +1 -1
  136. package/src/types/aiTypes.ts +19 -0
  137. package/src/types/configTypes.ts +8 -2
  138. package/src/types/gitTypes.ts +59 -0
  139. package/src/media/templates/componentPrompt.en.txt +0 -541
  140. package/src/media/templates/componentPrompt.ru.txt +0 -539
@@ -1,539 +0,0 @@
1
- Нужно подготовить документацию для компонента на языке [wikiLanguage].
2
- Следуй строго формату и требованиям ниже.
3
- Не добавляй ничего лишнего вне описанного.
4
- Стек: Storybook 9.x, TypeScript, MDX, Vue 3 Composition API.
5
-
6
- Canvas компонент импортируется из '@storybook/addon-docs/blocks'
7
-
8
- ====================================
9
- 1) Изучи текущий код компонента
10
- ====================================
11
- ```
12
- [code]
13
- ```
14
-
15
- Проанализируй:
16
- - Структуру компонента (props, computed, methods)
17
- - События (emit) и их параметры
18
- - Слоты (slots) и их параметры
19
- - Типы данных (interfaces, types)
20
- - Expose методы и свойства
21
- - Внутреннюю логику и поведение
22
- - Зависимости от других компонентов
23
-
24
- ====================================
25
- 2) Добавь недостающие комментарии к типам
26
- ====================================
27
- Добавь краткие одноязычные (на [wikiLanguage]) JSDoc-комментарии к отсутствующим типам и их свойствам.
28
-
29
- Код для исправления:
30
- ```ts
31
- // types.ts
32
- [types]
33
- ```
34
-
35
- Требования к комментариям:
36
- - Однострочные для простых полей (/** Описание */)
37
- - Многострочные для сложных типов или блоков логики
38
- - Без дублирования очевидного (не комментируй "id" как "id компонента")
39
- - Адаптированы для отображения в Storybook
40
- - Используй технические термины правильно
41
- - Для union типов опиши каждое значение отдельно в коде
42
-
43
- Пример (строго следуй формату):
44
- ```ts
45
- /**
46
- * Basic properties for image components.
47
- */
48
- export interface IconPropsBasic<
49
- Image extends ImagePropsBasic = ImagePropsBasic
50
- > extends SkeletonPropsInclude {
51
- // Status
52
- /** Active state of the icon */
53
- active?: boolean
54
-
55
- // Icon
56
- /** Значение основной иконки */
57
- icon?: ImageValue<Image>
58
- /** Значение активной иконки */
59
- iconActive?: ImageValue<Image>
60
-
61
- // Design
62
- /**
63
- * Размер иконки
64
- * @default 'medium'
65
- */
66
- size?: 'small' | 'medium' | 'large'
67
- }
68
- ```
69
-
70
- ====================================
71
- 3) Истории (stories) для Storybook
72
- ====================================
73
- Создай минимально необходимые примеры. Каждая история демонстрирует конкретный сценарий использования.
74
-
75
- Код для исправления:
76
- ```ts
77
- // ComponentDoc.stories.ts
78
- [stories]
79
- ```
80
-
81
- Правила:
82
- - СТРОГО ЗАПРЕЩЕНО трогать const meta. НИЧЕГО НЕ МЕНЯТЬ В META.
83
- - Не трогать существующие константы и истории
84
- - Не переименовывать существующие константы
85
- - Не добавлять истории ради заполнения
86
- - Каждая история должна иметь цель и демонстрировать конкретную функциональность
87
- - Если компонент имеет разные режимы, покажи по одному чёткому примеру для каждого
88
- - Имена историй в стиле PascalCase без лишних слов (например: `Basic`, `WithIcon`, `Disabled`)
89
- - Минимизируй импорты: только необходимое
90
- - Не используй лишние обёртки (div, section) без необходимости
91
- - Простой, читаемый код
92
-
93
- Пример:
94
- ```ts
95
- export const Basic: Story = {
96
- args: {
97
- label: 'Click me'
98
- }
99
- }
100
-
101
- export const WithIcon: Story = {
102
- args: {
103
- label: 'Click me',
104
- icon: 'check'
105
- }
106
- }
107
- ```
108
-
109
- ====================================
110
- 4) MDX-документация (описание компонента)
111
- ====================================
112
- Подготовь полное описание компонента в формате MDX. Строгая стилистика: никаких таблиц, никаких лишних разделов, только необходимая информация.
113
-
114
- Код для исправления:
115
- ```md
116
- // ComponentName.mdx
117
- [md]
118
- ```
119
-
120
- Структура документа (строго):
121
-
122
- **1. Краткое описание (description):**
123
- - Одно предложение, максимально кратко передающее суть компонента
124
- - Не используй фразы типа "Этот компонент", начинай сразу с назначения
125
-
126
- **2. Основной текст документации (doc):**
127
- - Начинается БЕЗ заголовка
128
- - Детальное описание функциональности (2-4 абзаца)
129
- - Блок "**Основные возможности:**" (список ключевых фич)
130
- - Блок "**Типичные сценарии использования:**" (список примеров применения)
131
- - Можно дорабатывать существующий текст, но НЕ удалять актуальную информацию
132
- - Удаляй только устаревшее или избыточное
133
-
134
- **3. Специальные разделы (если есть):**
135
-
136
- Вместо простого перечисления Props, описывай **конкретные возможности компонента**.
137
-
138
- Каждый раздел должен:
139
- - Иметь заголовок второго уровня (`##`), описывающий возможность, а не просто название prop
140
- - Кратко объяснять назначение и поведение функциональности
141
- - Перечислять связанные свойства (если их несколько)
142
- - Описывать взаимодействие свойств между собой и их влияние на компонент
143
- - Включать примеры использования с кодом
144
-
145
- **Формат описания возможности:**
146
-
147
- ```md
148
- ## Название возможности
149
-
150
- Краткое описание возможности и её назначения (1-2 абзаца).
151
-
152
- **Свойства:** (если несколько связанных свойств)
153
-
154
- - `propName` — описание свойства
155
- - `propName2` — описание свойства
156
-
157
- **Возможные значения:** (для enum/union типов)
158
-
159
- - `'value1'` — описание значения и его поведения
160
- - `'value2'` — описание значения и его поведения
161
-
162
- Дополнительное описание поведения, взаимодействия свойств, особенностей и ограничений.
163
-
164
- [примеры кода]
165
- ```
166
-
167
- **Примеры правильного описания возможностей:**
168
-
169
- ```md
170
- ## Анимация позиции заголовка
171
-
172
- Свойство `animationHeadPosition` определяет поведение области Head во время анимаций показа/скрытия.
173
-
174
- **Возможные значения:**
175
-
176
- - `'top'` — сохраняет Head вверху во время перехода (по умолчанию)
177
- - `'toBottom'` — анимирует Head вниз вместе с контентом
178
-
179
- Синхронизирует движение заголовка с анимацией контента, используя CSS-трансформации для плавных переходов.
180
-
181
- [код примера]
182
- ```
183
-
184
- ```md
185
- ## Навигация и стрелки
186
-
187
- Свойства `arrowCarousel`, `arrowStepper`, `disabledPrevious`, `disabledNext` и `align` предназначены для управления встроенными элементами навигации и выравнивания содержимого.
188
-
189
- **Свойства:**
190
-
191
- - `arrowCarousel` — включает стрелки навигации (влево/вправо) для переключения элементов
192
- - `arrowStepper` — включает числовые шаговые кнопки (минус/плюс)
193
- - `disabledPrevious` — отключает левую кнопку (назад/минус)
194
- - `disabledNext` — отключает правую кнопку (вперёд/плюс)
195
- - `align` — горизонтальное выравнивание содержимого (`left`, `center`, `right`)
196
-
197
- Свойства работают совместно: активен только один режим стрелок — если `arrowCarousel = true`, режим `arrowStepper` игнорируется и наоборот.
198
-
199
- [код примера]
200
- ```
201
-
202
- ```md
203
- ## Контурные кнопки (outline)
204
-
205
- Компонент Button поддерживает контурный режим через свойство `outline`. В этом режиме кнопки имеют минималистичный визуальный стиль с прозрачным фоном и цветной границей:
206
-
207
- - **Минималистичный дизайн** - подходит для интерфейсов, требующих сниженной визуальной нагрузки
208
- - **Прозрачный фон** - поддерживает чистый внешний вид, оставаясь интерактивными
209
- - **Обратная связь при наведении** - фон появляется при наведении
210
-
211
- Outline режим особенно полезен для создания третичных действий и второстепенных опций.
212
-
213
- [код примера]
214
- ```
215
-
216
- **Когда НЕ нужно описывать Props отдельными разделами:**
217
-
218
- - Простые boolean/string/number свойства без сложной логики — достаточно JSDoc комментариев в типах
219
- - Свойства с очевидным поведением (например, `disabled`, `label`, `placeholder`)
220
- - Единичные независимые свойства без взаимодействия с другими
221
-
222
- **Когда НУЖНО описывать возможности отдельными разделами:**
223
-
224
- - Свойства со сложной логикой взаимодействия (например, `cancel` и `cancelShow`)
225
- - Группы связанных свойств, работающих вместе (например, стрелки навигации)
226
- - Свойства с несколькими режимами работы (например, `adaptive` с разными значениями)
227
- - Свойства, влияющие на другие части компонента или имеющие приоритет над другими
228
- - Режимы отображения компонента (например, `primary`, `secondary`, `outline`)
229
- - CSS классы для управления поведением
230
-
231
- **4. Обязательные секции (если присутствуют в компоненте):**
232
-
233
- **Expose методы/свойства:**
234
- ```md
235
- ## Expose методы
236
- ### `methodName`
237
-
238
- Описание метода.
239
-
240
- **Тип:** `(param: Type) => ReturnType`
241
-
242
- **Параметры:**
243
- - `param: Type` — описание параметра
244
-
245
- **Возвращает:** описание возвращаемого значения
246
-
247
- [пример кода]
248
- ```
249
-
250
- **Слоты:**
251
- ```md
252
- ## Слоты
253
- ### `slotName`
254
-
255
- Описание слота.
256
-
257
- **Параметры:**
258
- - `param: Type` — описание параметра слота
259
-
260
- [пример кода]
261
- ```
262
-
263
- **События:**
264
- ```md
265
- ## События
266
- ### `eventName`
267
-
268
- Описание события.
269
-
270
- **Параметры:**
271
- - `param: Type` — описание параметра события
272
-
273
- **Структура Type:** (если параметр сложный)
274
- - `field: string` — описание поля
275
- - `field2: number` — описание поля
276
-
277
- [пример кода]
278
- ```
279
-
280
- **5. Примеры использования:**
281
- - Добавляй Canvas для демонстрации конкретных сценариев
282
- - НЕ добавляй базовый `<Canvas of={Component.Component}/>` — он уже есть в начале
283
- - Формат: `<Canvas of={Component.StoryName}/>`
284
-
285
- **Строгие правила форматирования:**
286
-
287
- - Заголовки уровней:
288
- - `##` — основные разделы (Props, Expose методы, Слоты, События)
289
- - `###` — конкретные элементы (названия методов, слотов, событий)
290
- - `####` — подразделы внутри описания (Поведение, Примеры)
291
-
292
- - Код:
293
- - Типы и интерфейсы: ` ```ts `
294
- - Разметка компонентов: ` ```html ` (НЕ ` ```vue `)
295
- - Inline код: обёртка в обратные кавычки `` `код` ``
296
-
297
- - Meta и StorybookMain:
298
- - СТРОГО ЗАПРЕЩЕНО трогать блоки Meta и StorybookMain
299
- - Они должны остаться как есть в начале файла
300
- - Не добавлять, не удалять, не изменять их
301
-
302
- - Структурные элементы:
303
- - Используй `**Жирный текст:**` для подзаголовков внутри описаний
304
- - Используй `>` для важных замечаний и предупреждений
305
- - Списки только там, где они улучшают читаемость
306
-
307
- **Пример полной структуры документа:**
308
-
309
- ```md
310
- import { Meta, Canvas } from '@storybook/addon-docs/blocks'
311
- import * as Component from './Component.stories'
312
-
313
- <Meta of={Component} />
314
-
315
- Компонент для создания модальных окон, диалогов и всплывающих элементов с гибким позиционированием и адаптивным поведением.
316
-
317
- Window управляет отображением контента поверх основного интерфейса, поддерживает различные типы позиционирования (модальные окна, выпадающие меню, action sheets), анимации открытия/закрытия и интеграцию с системой событий. Компонент автоматически обрабатывает клики вне области, управление фокусом и адаптацию под различные размеры экранов.
318
-
319
- **Основные возможности:**
320
-
321
- - Гибкое позиционирование (центр, края, углы экрана)
322
- - Адаптивные режимы (modal, menu, actionSheet, static)
323
- - Анимации открытия/закрытия с настройкой origin
324
- - Управление состоянием через v-model или expose методы
325
- - Интеграция со Scrollbar для прокручиваемого контента
326
- - Блокировка взаимодействия с фоном (persistent режим)
327
- - События жизненного цикла окна
328
-
329
- **Типичные сценарии использования:**
330
-
331
- - Модальные окна для форм и подтверждений
332
- - Выпадающие меню и контекстные меню
333
- - Боковые панели и drawer компоненты
334
- - Action sheets для мобильных интерфейсов
335
- - Всплывающие подсказки и диалоги
336
-
337
- ## CSS классы для управления поведением
338
-
339
- Компонент использует специальные CSS классы для управления поведением:
340
-
341
- - `*--block` — предотвращает закрытие окна при клике вне его границ
342
- - `*--blockChildren` — предотвращает закрытие текущего окна
343
- - `*--blockOther` — предотвращает закрытие других окон до закрытия текущего
344
- - `*--close` — применяется к элементам для закрытия окна
345
- - `*--controlOpenOnly` — применяется к элементам управления, которые только открывают окно
346
- - `*--controlStatic` — применяется к элементам управления в статическом режиме
347
- - `*--static` — применяется к элементам внутри окна, отменяя все действия
348
-
349
- Где `*` — название класса компонента (например, `d1-window`, `m3-window`).
350
-
351
- ## Анимация позиции заголовка
352
-
353
- Свойство `animationHeadPosition` определяет поведение области Head во время анимаций показа/скрытия.
354
-
355
- **Возможные значения:**
356
-
357
- - `'top'` — сохраняет Head вверху во время перехода (по умолчанию)
358
- - `'toBottom'` — анимирует Head вниз вместе с контентом
359
-
360
- Синхронизирует движение заголовка с анимацией контента, используя CSS-трансформации для плавных переходов.
361
-
362
- ```html
363
- <Window
364
- v-slot:default="{ animationHeadPosition }"
365
- :style="{ '--head-animation': animationHeadPosition }"
366
- >
367
- <Header>Заголовок</Header>
368
- <Content>Содержимое</Content>
369
- </Window>
370
- ```
371
-
372
- ## Навигация и стрелки
373
-
374
- Свойства `arrowCarousel`, `arrowStepper`, `disabledPrevious`, `disabledNext` и `align` предназначены для управления встроенными элементами навигации и выравнивания содержимого.
375
-
376
- **Свойства:**
377
-
378
- - `arrowCarousel` — включает стрелки навигации (влево/вправо) для переключения элементов
379
- - `arrowStepper` — включает числовые шаговые кнопки (минус/плюс)
380
- - `disabledPrevious` — отключает левую кнопку (назад/минус)
381
- - `disabledNext` — отключает правую кнопку (вперёд/плюс)
382
- - `align` — горизонтальное выравнивание содержимого (`left`, `center`, `right`)
383
-
384
- Свойства работают совместно: активен только один режим стрелок — если `arrowCarousel = true`, режим `arrowStepper` игнорируется и наоборот.
385
-
386
- ```html
387
- <Window
388
- v-slot:default="{ arrowCarousel, arrowStepper }"
389
- :arrow-carousel="arrowCarousel"
390
- :arrow-stepper="arrowStepper"
391
- >
392
- <Content>Содержимое</Content>
393
- </Window>
394
- ```
395
-
396
- ## Контурные кнопки (outline)
397
-
398
- Компонент Button поддерживает контурный режим через свойство `outline`. В этом режиме кнопки имеют минималистичный визуальный стиль с прозрачным фоном и цветной границей:
399
-
400
- - **Минималистичный дизайн** - подходит для интерфейсов, требующих сниженной визуальной нагрузки
401
- - **Прозрачный фон** - поддерживает чистый внешний вид, оставаясь интерактивными
402
- - **Обратная связь при наведении** - фон появляется при наведении
403
-
404
- Outline режим особенно полезен для создания третичных действий и второстепенных опций.
405
-
406
- ```html
407
- <Button outline>Контурная кнопка</Button>
408
- ```
409
-
410
- ## Expose методы
411
- ### `id`
412
-
413
- Уникальный идентификатор окна.
414
-
415
- **Тип:** `string`
416
-
417
- ```html
418
- <script setup>
419
- const windowRef = ref()
420
-
421
- onMounted(() => {
422
- console.log(windowRef.value.id) // "window-123"
423
- })
424
- </script>
425
-
426
- <template>
427
- <Window ref="windowRef" />
428
- </template>
429
- ```
430
-
431
- ## Слоты
432
- ### `control`
433
-
434
- Слот для размещения элементов управления окном (кнопки закрытия, минимизации и т.д.).
435
-
436
- **Параметры:**
437
- - `props: WindowControlItem` — объект с данными управления окном
438
-
439
- ```html
440
- <Window>
441
- <template #control="{ onclick, open }">
442
- <button @click="onclick">
443
- {{ open ? 'Закрыть' : 'Открыть' }}
444
- </button>
445
- </template>
446
- </Window>
447
- ```
448
-
449
- ## События
450
- ### `window`
451
-
452
- Событие срабатывает при изменении состояния окна (открытие/закрытие).
453
-
454
- **Параметры:**
455
- - `options: WindowEmitOptions` — объект с данными окна
456
-
457
- **Структура WindowEmitOptions:**
458
- - `id: string` — уникальный идентификатор окна
459
- - `element: HTMLDivElement` — DOM элемент окна
460
- - `control: HTMLElement` — DOM элемент управления
461
- - `open: boolean` — состояние открытия окна (`true` - открыто, `false` - закрыто)
462
-
463
- ```html
464
- <script setup>
465
- const handleWindow = (options) => {
466
- console.log('ID окна:', options.id)
467
- console.log('Окно открыто:', options.open)
468
- console.log('Элемент окна:', options.element)
469
- console.log('Элемент управления:', options.control)
470
- }
471
- </script>
472
-
473
- <template>
474
- <Window @window="handleWindow">
475
- <template #default>
476
- <p>Содержимое окна</p>
477
- </template>
478
- </Window>
479
- </template>
480
- ```
481
-
482
- ## Примеры использования
483
- ### Базовое модальное окно
484
-
485
- <Canvas of={Component.BasicModal}/>
486
-
487
- ### Выпадающее меню
488
-
489
- <Canvas of={Component.DropdownMenu}/>
490
- ```
491
-
492
- ====================================
493
- 5) Итоговый возврат
494
- ====================================
495
- Верни результат СТРОГО в формате (ничего лишнего до или после):
496
-
497
- [types.ts]
498
- #########
499
- [ComponentDoc.stories.ts]
500
- #########
501
- [ComponentName.mdx]
502
-
503
- **Требования к формату вывода:**
504
- - НЕ добавляй метки файлов типа `// filepath: ...`
505
- - НЕ оборачивай в блоки кода (` ```ts `, ` ```md `)
506
- - НЕ добавляй комментарии с названиями файлов
507
- - НЕ включай в сам результат текст `[types.ts]`, `[ComponentDoc.stories.ts]`, `[ComponentName.mdx]`
508
- - Только чистый код, разделённый строкой из девяти символов решётки: `#########`
509
- - Порядок строго: типы → истории → документация
510
- - Каждый блок начинается с первой строки кода, без пробелов и переносов перед
511
-
512
- **Структура каждого блока:**
513
- - `[types.ts]` — итоговый файл типов с JSDoc комментариями (только содержимое файла)
514
- - `[ComponentDoc.stories.ts]` — итоговый файл историй (только содержимое файла)
515
- - `[ComponentName.mdx]` — итоговая MDX-документация (только содержимое файла)
516
-
517
- ====================================
518
- Ограничения и стилистика
519
- ====================================
520
-
521
- **Запрещено:**
522
- - Таблицы в любом виде
523
- - Произвольные дополнительные разделы вне указанных
524
- - Раздел "Props" для простых свойств без сложной логики
525
- - Дублирование описаний одного и того же
526
- - Placeholder'ы вне указанных в промпте (`[code]`, `[types]`, `[stories]`, `[md]`)
527
- - Использование ` ```vue ` для примеров кода (только ` ```html `)
528
- - Изменение Meta блока в MDX
529
- - Добавление базового Canvas (`<Canvas of={Component.Component}/>`)
530
-
531
- **Обязательно:**
532
- - Язык документации соответствует [wikiLanguage]
533
- - Если [wikiLanguage] = "en", используй английский для ВСЕЙ документации
534
- - Если [wikiLanguage] = "ru", используй русский для ВСЕЙ документации
535
- - Кодовые блоки: типы и события — ` ```ts `, разметка — ` ```html `
536
- - Истории: только необходимые сценарии, без визуальных украшений
537
- - Краткость и информативность без "воды"
538
- - Технически корректные термины
539
- - Примеры кода работоспособны и актуальны