@dxtmisha/scripts 0.4.5 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/ai-doc.ts +9 -0
- package/package.json +9 -7
- package/src/classes/Ai/AiAbstract.ts +94 -13
- package/src/classes/Ai/AiDoc.ts +62 -0
- package/src/classes/Ai/AiDocItem.ts +20 -0
- package/src/classes/Ai/AiDocItemAbstract.ts +198 -0
- package/src/classes/Ai/AiDocItemClasses.ts +20 -0
- package/src/classes/Ai/AiDocItemComposables.ts +13 -0
- package/src/classes/Ai/AiDocType.ts +45 -0
- package/src/classes/Ai/AiGoogle.ts +7 -29
- package/src/classes/Ai/AiGoogleCli.ts +24 -0
- package/src/classes/Ai/AiGoogleCliLite.ts +144 -0
- package/src/classes/Ai/AiGoogleLite.ts +77 -0
- package/src/classes/BuildItem.ts +176 -0
- package/src/classes/Component/ComponentCreator.ts +2 -0
- package/src/classes/Component/ComponentItem.ts +3 -1
- package/src/classes/Component/ComponentWiki.ts +107 -190
- package/src/classes/Component/ComponentWikiFile.ts +102 -15
- package/src/classes/Design/DesignCommand.ts +3 -1
- package/src/classes/Design/DesignComponent.ts +3 -1
- package/src/classes/Design/DesignConstructor.ts +3 -1
- package/src/classes/Design/DesignConstructors.ts +3 -1
- package/src/classes/Design/DesignReplace.ts +3 -1
- package/src/classes/Design/DesignStructure.ts +3 -1
- package/src/classes/Design/DesignStructureClasses.ts +3 -1
- package/src/classes/Design/DesignStructureItemAbstract.ts +2 -0
- package/src/classes/Design/DesignStructureRead.ts +3 -1
- package/src/classes/Design/DesignStructureStyles.ts +2 -0
- package/src/classes/Design/DesignTypescript.ts +1 -1
- package/src/classes/Design/DesignUi.ts +3 -1
- package/src/classes/Design/DesignWiki.ts +3 -1
- package/src/classes/Git/GitRead.ts +258 -0
- package/src/classes/Library/LibraryExport.ts +3 -1
- package/src/classes/Library/LibraryFlags.ts +3 -1
- package/src/classes/Library/LibraryItems.ts +3 -1
- package/src/classes/Library/LibraryMedia.ts +3 -1
- package/src/classes/Package/PackageInit.ts +2 -0
- package/src/classes/Package/PackageItem.ts +2 -0
- package/src/classes/Properties/Properties.ts +3 -1
- package/src/classes/Properties/PropertiesCache.ts +3 -1
- package/src/classes/Properties/PropertiesConfig.ts +21 -0
- package/src/classes/Properties/PropertiesConvector.ts +3 -1
- package/src/classes/Properties/PropertiesFile.ts +11 -1
- package/src/classes/Properties/PropertiesImport.ts +3 -1
- package/src/classes/Properties/PropertiesItems.ts +3 -1
- package/src/classes/Properties/PropertiesKeys.ts +3 -1
- package/src/classes/Properties/PropertiesMain.ts +3 -1
- package/src/classes/Properties/PropertiesPalette.ts +3 -1
- package/src/classes/Properties/PropertiesPath.ts +3 -1
- package/src/classes/Properties/PropertiesScss.ts +3 -1
- package/src/classes/Properties/PropertiesSeparator.ts +3 -1
- package/src/classes/Properties/PropertiesSettings.ts +3 -1
- package/src/classes/Properties/PropertiesStandard.ts +3 -1
- package/src/classes/Properties/PropertiesTool.ts +3 -1
- package/src/classes/Properties/PropertiesTypes.ts +3 -1
- package/src/classes/Properties/PropertiesValues.ts +2 -0
- package/src/classes/Properties/PropertiesWrap.ts +3 -1
- package/src/classes/Properties/convector/convectorColor.ts +2 -0
- package/src/classes/Properties/convector/convectorFontFamilies.ts +2 -0
- package/src/classes/Properties/convector/convectorShadow.ts +3 -1
- package/src/classes/Properties/convector/convectorTypography.ts +3 -1
- package/src/classes/Properties/to/PropertiesToAbstract.ts +2 -0
- package/src/classes/Properties/to/PropertiesToAnimate.ts +3 -1
- package/src/classes/Properties/to/PropertiesToClass.ts +2 -0
- package/src/classes/Properties/to/PropertiesToClone.ts +3 -1
- package/src/classes/Properties/to/PropertiesToComponent.ts +2 -0
- package/src/classes/Properties/to/PropertiesToDrag.ts +3 -1
- package/src/classes/Properties/to/PropertiesToDuplicate.ts +3 -1
- package/src/classes/Properties/to/PropertiesToFull.ts +2 -0
- package/src/classes/Properties/to/PropertiesToLink.ts +6 -3
- package/src/classes/Properties/to/PropertiesToMedia.ts +3 -1
- package/src/classes/Properties/to/PropertiesToMulti.ts +3 -1
- package/src/classes/Properties/to/PropertiesToNone.ts +3 -1
- package/src/classes/Properties/to/PropertiesToPalette.ts +3 -1
- package/src/classes/Properties/to/PropertiesToProperty.ts +3 -1
- package/src/classes/Properties/to/PropertiesToRemove.ts +3 -1
- package/src/classes/Properties/to/PropertiesToReplace.ts +2 -0
- package/src/classes/Properties/to/PropertiesToRoot.ts +2 -0
- package/src/classes/Properties/to/PropertiesToSimilar.ts +3 -1
- package/src/classes/Properties/to/PropertiesToSort.ts +3 -1
- package/src/classes/Properties/to/PropertiesToState.ts +3 -1
- package/src/classes/Properties/to/PropertiesToStyle.ts +3 -1
- package/src/classes/Properties/to/PropertiesToSub.ts +2 -0
- package/src/classes/Properties/to/PropertiesToSubclass.ts +2 -0
- package/src/classes/Properties/to/PropertiesToVar.ts +3 -1
- package/src/classes/Properties/to/PropertiesToVariable.ts +3 -1
- package/src/classes/Styles/Styles.ts +3 -1
- package/src/classes/Styles/StylesClasses.ts +3 -1
- package/src/classes/Styles/StylesProperties.ts +2 -0
- package/src/classes/Styles/StylesRoot.ts +2 -0
- package/src/classes/Styles/StylesTool.ts +3 -1
- package/src/classes/Styles/to/StylesToAbstract.ts +3 -1
- package/src/classes/Styles/to/StylesToAnimate.ts +2 -0
- package/src/classes/Styles/to/StylesToClass.ts +2 -0
- package/src/classes/Styles/to/StylesToClassFull.ts +2 -0
- package/src/classes/Styles/to/StylesToContainer.ts +2 -0
- package/src/classes/Styles/to/StylesToMedia.ts +2 -0
- package/src/classes/Styles/to/StylesToProperty.ts +3 -1
- package/src/classes/Styles/to/StylesToRoot.ts +2 -0
- package/src/classes/Styles/to/StylesToSelector.ts +3 -1
- package/src/classes/Styles/to/StylesToVar.ts +3 -1
- package/src/classes/Styles/to/StylesToVirtual.ts +2 -0
- package/src/composables/useAi.ts +3 -0
- package/src/config.ts +11 -0
- package/src/functions/getComponentPaths.ts +2 -0
- package/src/functions/getConfigAi.ts +13 -0
- package/src/functions/getConstructorProperties.ts +3 -1
- package/src/functions/getNameDirByPaths.ts +2 -0
- package/src/functions/toPathStandardSep.ts +2 -0
- package/src/library-ai.ts +3 -0
- package/src/library.ts +2 -89
- package/src/media/ai/ai-doc-types.ts +21 -0
- package/src/media/properties/css.ts +4 -1
- package/src/media/properties/listSort.ts +1 -1
- package/src/media/properties/style.ts +2 -0
- package/src/media/templates/component/DesignComponent.vue +1 -1
- package/src/media/templates/constructors/ConstructorsDesign.tsx +4 -2
- package/src/media/templates/packages/library/package.json +2 -1
- package/src/media/templates/prompts/aiDocClassPrompt.en.txt +66 -0
- package/src/media/templates/prompts/aiDocClassPrompt.ru.txt +64 -0
- package/src/media/templates/prompts/aiDocComposablePrompt.en.txt +67 -0
- package/src/media/templates/prompts/aiDocComposablePrompt.ru.txt +67 -0
- package/src/media/templates/prompts/aiDocFunctionPrompt.en.txt +57 -0
- package/src/media/templates/prompts/aiDocFunctionPrompt.ru.txt +57 -0
- package/src/media/templates/prompts/componentPrompt.en.txt +105 -0
- package/src/media/templates/prompts/componentPrompt.ru.txt +105 -0
- package/src/media/templates/prompts/demoClassEn.mdx +111 -0
- package/src/media/templates/prompts/demoClassRu.mdx +111 -0
- package/src/media/templates/prompts/demoComponentEn.mdx +282 -0
- package/src/media/templates/prompts/demoComponentRu.mdx +282 -0
- package/src/media/templates/prompts/demoComposableEn.mdx +103 -0
- package/src/media/templates/prompts/demoComposableRu.mdx +103 -0
- package/src/media/templates/prompts/demoDocEn.mdx +30 -0
- package/src/media/templates/prompts/demoDocRu.mdx +30 -0
- package/src/media/templates/viteComponentTemplateConfig.ts +1 -1
- package/src/types/aiTypes.ts +19 -0
- package/src/types/configTypes.ts +8 -2
- package/src/types/gitTypes.ts +59 -0
- package/src/media/templates/componentPrompt.en.txt +0 -447
- package/src/media/templates/componentPrompt.ru.txt +0 -449
|
@@ -1,449 +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
|
-
- Описывай Props только если они имеют сложную логику взаимодействия, зависимости или составные типы
|
|
138
|
-
- НЕ описывай простые boolean/string props списком - для них достаточно JSDoc комментариев в типах
|
|
139
|
-
- Формат: `## Props`, затем `### НазваниеProp` для каждого сложного prop
|
|
140
|
-
|
|
141
|
-
Пример описания сложного prop:
|
|
142
|
-
```md
|
|
143
|
-
## Props
|
|
144
|
-
### `adaptive`
|
|
145
|
-
|
|
146
|
-
Режим адаптивного поведения окна.
|
|
147
|
-
|
|
148
|
-
**Тип:** `'modal' | 'menu' | 'actionSheet' | 'static'`
|
|
149
|
-
|
|
150
|
-
**По умолчанию:** `'modal'`
|
|
151
|
-
|
|
152
|
-
**Возможные значения:**
|
|
153
|
-
- `'modal'` — модальное окно по центру экрана с оверлеем
|
|
154
|
-
- `'menu'` — выпадающее меню, привязанное к элементу управления
|
|
155
|
-
- `'actionSheet'` — нижняя панель для мобильных интерфейсов
|
|
156
|
-
- `'static'` — статичный режим без оверлея и позиционирования
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
**4. Обязательные секции (если присутствуют в компоненте):**
|
|
160
|
-
|
|
161
|
-
**Expose методы/свойства:**
|
|
162
|
-
```md
|
|
163
|
-
## Expose методы
|
|
164
|
-
### `methodName`
|
|
165
|
-
|
|
166
|
-
Описание метода.
|
|
167
|
-
|
|
168
|
-
**Тип:** `(param: Type) => ReturnType`
|
|
169
|
-
|
|
170
|
-
**Параметры:**
|
|
171
|
-
- `param: Type` — описание параметра
|
|
172
|
-
|
|
173
|
-
**Возвращает:** описание возвращаемого значения
|
|
174
|
-
|
|
175
|
-
[пример кода]
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
**Слоты:**
|
|
179
|
-
```md
|
|
180
|
-
## Слоты
|
|
181
|
-
### `slotName`
|
|
182
|
-
|
|
183
|
-
Описание слота.
|
|
184
|
-
|
|
185
|
-
**Параметры:**
|
|
186
|
-
- `param: Type` — описание параметра слота
|
|
187
|
-
|
|
188
|
-
[пример кода]
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
**События:**
|
|
192
|
-
```md
|
|
193
|
-
## События
|
|
194
|
-
### `eventName`
|
|
195
|
-
|
|
196
|
-
Описание события.
|
|
197
|
-
|
|
198
|
-
**Параметры:**
|
|
199
|
-
- `param: Type` — описание параметра события
|
|
200
|
-
|
|
201
|
-
**Структура Type:** (если параметр сложный)
|
|
202
|
-
- `field: string` — описание поля
|
|
203
|
-
- `field2: number` — описание поля
|
|
204
|
-
|
|
205
|
-
[пример кода]
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
**5. Примеры использования:**
|
|
209
|
-
- Добавляй Canvas для демонстрации конкретных сценариев
|
|
210
|
-
- НЕ добавляй базовый `<Canvas of={Component.Component}/>` — он уже есть в начале
|
|
211
|
-
- Формат: `<Canvas of={Component.StoryName}/>`
|
|
212
|
-
|
|
213
|
-
**Строгие правила форматирования:**
|
|
214
|
-
|
|
215
|
-
- Заголовки уровней:
|
|
216
|
-
- `##` — основные разделы (Props, Expose методы, Слоты, События)
|
|
217
|
-
- `###` — конкретные элементы (названия методов, слотов, событий)
|
|
218
|
-
- `####` — подразделы внутри описания (Поведение, Примеры)
|
|
219
|
-
|
|
220
|
-
- Код:
|
|
221
|
-
- Типы и интерфейсы: ` ```ts `
|
|
222
|
-
- Разметка компонентов: ` ```html ` (НЕ ` ```vue `)
|
|
223
|
-
- Inline код: обёртка в обратные кавычки `` `код` ``
|
|
224
|
-
|
|
225
|
-
- Meta и StorybookMain:
|
|
226
|
-
- СТРОГО ЗАПРЕЩЕНО трогать блоки Meta и StorybookMain
|
|
227
|
-
- Они должны остаться как есть в начале файла
|
|
228
|
-
- Не добавлять, не удалять, не изменять их
|
|
229
|
-
|
|
230
|
-
- Структурные элементы:
|
|
231
|
-
- Используй `**Жирный текст:**` для подзаголовков внутри описаний
|
|
232
|
-
- Используй `>` для важных замечаний и предупреждений
|
|
233
|
-
- Списки только там, где они улучшают читаемость
|
|
234
|
-
|
|
235
|
-
**Пример полной структуры документа:**
|
|
236
|
-
|
|
237
|
-
```md
|
|
238
|
-
import { Meta, Canvas } from '@storybook/addon-docs/blocks'
|
|
239
|
-
import * as Component from './Component.stories'
|
|
240
|
-
|
|
241
|
-
<Meta of={Component} />
|
|
242
|
-
|
|
243
|
-
Компонент для создания модальных окон, диалогов и всплывающих элементов с гибким позиционированием и адаптивным поведением.
|
|
244
|
-
|
|
245
|
-
Window управляет отображением контента поверх основного интерфейса, поддерживает различные типы позиционирования (модальные окна, выпадающие меню, action sheets), анимации открытия/закрытия и интеграцию с системой событий. Компонент автоматически обрабатывает клики вне области, управление фокусом и адаптацию под различные размеры экранов.
|
|
246
|
-
|
|
247
|
-
**Основные возможности:**
|
|
248
|
-
|
|
249
|
-
- Гибкое позиционирование (центр, края, углы экрана)
|
|
250
|
-
- Адаптивные режимы (modal, menu, actionSheet, static)
|
|
251
|
-
- Анимации открытия/закрытия с настройкой origin
|
|
252
|
-
- Управление состоянием через v-model или expose методы
|
|
253
|
-
- Интеграция со Scrollbar для прокручиваемого контента
|
|
254
|
-
- Блокировка взаимодействия с фоном (persistent режим)
|
|
255
|
-
- События жизненного цикла окна
|
|
256
|
-
|
|
257
|
-
**Типичные сценарии использования:**
|
|
258
|
-
|
|
259
|
-
- Модальные окна для форм и подтверждений
|
|
260
|
-
- Выпадающие меню и контекстные меню
|
|
261
|
-
- Боковые панели и drawer компоненты
|
|
262
|
-
- Action sheets для мобильных интерфейсов
|
|
263
|
-
- Всплывающие подсказки и диалоги
|
|
264
|
-
|
|
265
|
-
## CSS классы для управления поведением
|
|
266
|
-
|
|
267
|
-
Компонент использует специальные CSS классы для управления поведением:
|
|
268
|
-
|
|
269
|
-
- `*--block` — предотвращает закрытие окна при клике вне его границ
|
|
270
|
-
- `*--blockChildren` — предотвращает закрытие текущего окна
|
|
271
|
-
- `*--blockOther` — предотвращает закрытие других окон до закрытия текущего
|
|
272
|
-
- `*--close` — применяется к элементам для закрытия окна
|
|
273
|
-
- `*--controlOpenOnly` — применяется к элементам управления, которые только открывают окно
|
|
274
|
-
- `*--controlStatic` — применяется к элементам управления в статическом режиме
|
|
275
|
-
- `*--static` — применяется к элементам внутри окна, отменяя все действия
|
|
276
|
-
|
|
277
|
-
Где `*` — название класса компонента (например, `d1-window`, `m3-window`).
|
|
278
|
-
|
|
279
|
-
## Props
|
|
280
|
-
### `adaptive`
|
|
281
|
-
|
|
282
|
-
Режим адаптивного поведения окна.
|
|
283
|
-
|
|
284
|
-
**Тип:** `'modal' | 'menu' | 'actionSheet' | 'static'`
|
|
285
|
-
|
|
286
|
-
**По умолчанию:** `'modal'`
|
|
287
|
-
|
|
288
|
-
**Возможные значения:**
|
|
289
|
-
- `'modal'` — модальное окно по центру экрана
|
|
290
|
-
- `'menu'` — выпадающее меню, привязанное к элементу
|
|
291
|
-
- `'actionSheet'` — нижняя панель для мобильных устройств
|
|
292
|
-
- `'static'` — статичный режим без оверлея
|
|
293
|
-
|
|
294
|
-
## Управление состоянием через v-model
|
|
295
|
-
|
|
296
|
-
Двусторонняя привязка состояния открытия окна через `v-model:open`.
|
|
297
|
-
|
|
298
|
-
**Параметры:**
|
|
299
|
-
- `open: boolean` — состояние открытия окна
|
|
300
|
-
|
|
301
|
-
```html
|
|
302
|
-
<script setup>
|
|
303
|
-
import { ref } from 'vue'
|
|
304
|
-
|
|
305
|
-
const isOpen = ref(false)
|
|
306
|
-
</script>
|
|
307
|
-
|
|
308
|
-
<template>
|
|
309
|
-
<button @click="isOpen = true">Открыть</button>
|
|
310
|
-
|
|
311
|
-
<Window v-model:open="isOpen">
|
|
312
|
-
<template #default>
|
|
313
|
-
<p>Содержимое окна</p>
|
|
314
|
-
<button @click="isOpen = false">Закрыть</button>
|
|
315
|
-
</template>
|
|
316
|
-
</Window>
|
|
317
|
-
</template>
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
## Expose методы
|
|
321
|
-
### `id`
|
|
322
|
-
|
|
323
|
-
Уникальный идентификатор окна.
|
|
324
|
-
|
|
325
|
-
**Тип:** `string`
|
|
326
|
-
|
|
327
|
-
```html
|
|
328
|
-
<script setup>
|
|
329
|
-
const windowRef = ref()
|
|
330
|
-
|
|
331
|
-
onMounted(() => {
|
|
332
|
-
console.log(windowRef.value.id) // "window-123"
|
|
333
|
-
})
|
|
334
|
-
</script>
|
|
335
|
-
|
|
336
|
-
<template>
|
|
337
|
-
<Window ref="windowRef" />
|
|
338
|
-
</template>
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
## Слоты
|
|
342
|
-
### `control`
|
|
343
|
-
|
|
344
|
-
Слот для размещения элементов управления окном (кнопки закрытия, минимизации и т.д.).
|
|
345
|
-
|
|
346
|
-
**Параметры:**
|
|
347
|
-
- `props: WindowControlItem` — объект с данными управления окном
|
|
348
|
-
|
|
349
|
-
```html
|
|
350
|
-
<Window>
|
|
351
|
-
<template #control="{ onclick, open }">
|
|
352
|
-
<button @click="onclick">
|
|
353
|
-
{{ open ? 'Закрыть' : 'Открыть' }}
|
|
354
|
-
</button>
|
|
355
|
-
</template>
|
|
356
|
-
</Window>
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
## События
|
|
360
|
-
### `window`
|
|
361
|
-
|
|
362
|
-
Событие срабатывает при изменении состояния окна (открытие/закрытие).
|
|
363
|
-
|
|
364
|
-
**Параметры:**
|
|
365
|
-
- `options: WindowEmitOptions` — объект с данными окна
|
|
366
|
-
|
|
367
|
-
**Структура WindowEmitOptions:**
|
|
368
|
-
- `id: string` — уникальный идентификатор окна
|
|
369
|
-
- `element: HTMLDivElement` — DOM элемент окна
|
|
370
|
-
- `control: HTMLElement` — DOM элемент управления
|
|
371
|
-
- `open: boolean` — состояние открытия окна (`true` - открыто, `false` - закрыто)
|
|
372
|
-
|
|
373
|
-
```html
|
|
374
|
-
<script setup>
|
|
375
|
-
const handleWindow = (options) => {
|
|
376
|
-
console.log('ID окна:', options.id)
|
|
377
|
-
console.log('Окно открыто:', options.open)
|
|
378
|
-
console.log('Элемент окна:', options.element)
|
|
379
|
-
console.log('Элемент управления:', options.control)
|
|
380
|
-
}
|
|
381
|
-
</script>
|
|
382
|
-
|
|
383
|
-
<template>
|
|
384
|
-
<Window @window="handleWindow">
|
|
385
|
-
<template #default>
|
|
386
|
-
<p>Содержимое окна</p>
|
|
387
|
-
</template>
|
|
388
|
-
</Window>
|
|
389
|
-
</template>
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
## Примеры использования
|
|
393
|
-
### Базовое модальное окно
|
|
394
|
-
|
|
395
|
-
<Canvas of={Component.BasicModal}/>
|
|
396
|
-
|
|
397
|
-
### Выпадающее меню
|
|
398
|
-
|
|
399
|
-
<Canvas of={Component.DropdownMenu}/>
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
====================================
|
|
403
|
-
5) Итоговый возврат
|
|
404
|
-
====================================
|
|
405
|
-
Верни результат СТРОГО в формате (ничего лишнего до или после):
|
|
406
|
-
|
|
407
|
-
[types.ts]
|
|
408
|
-
#########
|
|
409
|
-
[ComponentDoc.stories.ts]
|
|
410
|
-
#########
|
|
411
|
-
[ComponentName.mdx]
|
|
412
|
-
|
|
413
|
-
**Требования к формату вывода:**
|
|
414
|
-
- НЕ добавляй метки файлов типа `// filepath: ...`
|
|
415
|
-
- НЕ оборачивай в блоки кода (` ```ts `, ` ```md `)
|
|
416
|
-
- НЕ добавляй комментарии с названиями файлов
|
|
417
|
-
- НЕ включай в сам результат текст `[types.ts]`, `[ComponentDoc.stories.ts]`, `[ComponentName.mdx]`
|
|
418
|
-
- Только чистый код, разделённый строкой из девяти символов решётки: `#########`
|
|
419
|
-
- Порядок строго: типы → истории → документация
|
|
420
|
-
- Каждый блок начинается с первой строки кода, без пробелов и переносов перед
|
|
421
|
-
|
|
422
|
-
**Структура каждого блока:**
|
|
423
|
-
- `[types.ts]` — итоговый файл типов с JSDoc комментариями (только содержимое файла)
|
|
424
|
-
- `[ComponentDoc.stories.ts]` — итоговый файл историй (только содержимое файла)
|
|
425
|
-
- `[ComponentName.mdx]` — итоговая MDX-документация (только содержимое файла)
|
|
426
|
-
|
|
427
|
-
====================================
|
|
428
|
-
Ограничения и стилистика
|
|
429
|
-
====================================
|
|
430
|
-
|
|
431
|
-
**Запрещено:**
|
|
432
|
-
- Таблицы в любом виде
|
|
433
|
-
- Произвольные дополнительные разделы вне указанных
|
|
434
|
-
- Раздел "Props" для простых свойств без сложной логики
|
|
435
|
-
- Дублирование описаний одного и того же
|
|
436
|
-
- Placeholder'ы вне указанных в промпте (`[code]`, `[types]`, `[stories]`, `[md]`)
|
|
437
|
-
- Использование ` ```vue ` для примеров кода (только ` ```html `)
|
|
438
|
-
- Изменение Meta блока в MDX
|
|
439
|
-
- Добавление базового Canvas (`<Canvas of={Component.Component}/>`)
|
|
440
|
-
|
|
441
|
-
**Обязательно:**
|
|
442
|
-
- Язык документации соответствует [wikiLanguage]
|
|
443
|
-
- Если [wikiLanguage] = "en", используй английский для ВСЕЙ документации
|
|
444
|
-
- Если [wikiLanguage] = "ru", используй русский для ВСЕЙ документации
|
|
445
|
-
- Кодовые блоки: типы и события — ` ```ts `, разметка — ` ```html `
|
|
446
|
-
- Истории: только необходимые сценарии, без визуальных украшений
|
|
447
|
-
- Краткость и информативность без "воды"
|
|
448
|
-
- Технически корректные термины
|
|
449
|
-
- Примеры кода работоспособны и актуальны
|