@dxtmisha/scripts 0.4.1 → 0.4.2
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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxtmisha/scripts",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.2",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Development scripts and CLI tools for DXT UI projects - automated component generation, library building and project management tools",
|
|
7
7
|
"keywords": [
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
UI_FILE_NAME_VITE,
|
|
16
16
|
UI_FILE_NAME_VITE_WORKERS
|
|
17
17
|
} from '../../config'
|
|
18
|
+
import { isFilled } from '@dxtmisha/functional'
|
|
18
19
|
|
|
19
20
|
// Sample Vite config template path / Путь к шаблону Vite-конфига
|
|
20
21
|
const FILE_VITE_SAMPLE = [__dirname, '..', '..', 'media', 'templates', 'viteComponentTemplateConfig.ts']
|
|
@@ -296,7 +297,7 @@ ${content}
|
|
|
296
297
|
.replace('[stories]', this.storiesFile.read())
|
|
297
298
|
.replace('[md]', this.mdFile.read())
|
|
298
299
|
.replace(/\[wikiLanguage]/g, PropertiesConfig.getWikiLanguage())
|
|
299
|
-
+ ` ${this.prompt}`
|
|
300
|
+
+ (isFilled(this.prompt) ? `Additional conditions (these conditions take priority): ${this.prompt}` : '')
|
|
300
301
|
)
|
|
301
302
|
}
|
|
302
303
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
Нужно подготовить документацию для компонента на языке [wikiLanguage]. Следуй строго формату и требованиям ниже. Не добавляй ничего лишнего вне описанного.
|
|
2
2
|
Стек Storybook 9.x, TypeScript, MDX.
|
|
3
3
|
|
|
4
|
+
компонент Canvas подключаеться из '@storybook/addon-docs/blocks'
|
|
5
|
+
|
|
4
6
|
====================================
|
|
5
7
|
1) Изучи текущий код компонента
|
|
6
8
|
====================================
|
|
@@ -92,48 +94,83 @@ export interface IconPropsBasic<
|
|
|
92
94
|
Краткое описание назначения слота. Можно маркированным списком выделить особенности.
|
|
93
95
|
Если есть props, добавить описанике props. `props: any` - это значить что нету пропсов, его не надо писать.
|
|
94
96
|
Если слотов несколько — каждый с подпунктом `###`.
|
|
97
|
+
Если возврашет просто VNode, не надо описывать.
|
|
98
|
+
Не надо что то в такой типе `Этот слот принимает любые VNode и не передает никаких свойств.`
|
|
99
|
+
Если нету события, не описывать блок событий.
|
|
100
|
+
Если нету слотов, не описывать блок слотов.
|
|
95
101
|
|
|
96
102
|
Формат событий:
|
|
97
103
|
```
|
|
98
104
|
## События
|
|
99
105
|
### `имяСобытия`
|
|
100
106
|
Описание когда и зачем испускается.
|
|
101
|
-
```ts
|
|
102
|
-
// сигнатура обработчика
|
|
103
|
-
```
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
Пример блока props для связанных свойств (использовать ТОЛЬКО если реально нужно):
|
|
107
|
-
```
|
|
108
|
-
## Свойства выделения текста
|
|
109
|
-
... (как в примере ниже)
|
|
110
|
-
```
|
|
111
107
|
|
|
112
108
|
Пример описания слота (не вставляй дословно, адаптируй):
|
|
109
|
+
### `suffix`
|
|
110
|
+
|
|
111
|
+
Слот для размещения контента в конце компонента, после основного содержимого.
|
|
112
|
+
|
|
113
|
+
**Возвращает:** `VNode` — элемент с классом `{className}__suffix` и атрибутом `data-event-type="suffix"`
|
|
114
|
+
|
|
115
|
+
```html
|
|
116
|
+
<Component>
|
|
117
|
+
<template #suffix>
|
|
118
|
+
<Icon name="check" />
|
|
119
|
+
</template>
|
|
120
|
+
</Component>
|
|
113
121
|
```
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
122
|
+
|
|
123
|
+
### `control`
|
|
124
|
+
|
|
125
|
+
Слот для размещения элементов управления окном (кнопки закрытия, минимизации и т.д.).
|
|
126
|
+
|
|
127
|
+
**Параметры:**
|
|
128
|
+
- `props: WindowControlItem` — объект с данными управления окном
|
|
129
|
+
|
|
130
|
+
```html
|
|
131
|
+
<Window>
|
|
132
|
+
<template #control="{ onclick, open }">
|
|
133
|
+
<button @click="onclick">
|
|
134
|
+
{{ open ? 'Закрыть' : 'Открыть' }}
|
|
135
|
+
</button>
|
|
136
|
+
</template>
|
|
137
|
+
</Window>
|
|
118
138
|
```
|
|
119
139
|
|
|
120
140
|
Пример описания события (адаптируй под контекст):
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
Событие
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
141
|
+
### `window`
|
|
142
|
+
|
|
143
|
+
Событие срабатывает при изменении состояния окна (открытие/закрытие).
|
|
144
|
+
|
|
145
|
+
**Параметры:**
|
|
146
|
+
- `options: WindowEmitOptions` — объект с данными окна
|
|
147
|
+
|
|
148
|
+
**Структура WindowEmitOptions:**
|
|
149
|
+
- `id: string` — уникальный идентификатор окна
|
|
150
|
+
- `element: HTMLDivElement` — DOM элемент окна
|
|
151
|
+
- `control: HTMLElement` — DOM элемент управления
|
|
152
|
+
- `open: boolean` — состояние открытия окна (`true` - открыто, `false` - закрыто)
|
|
153
|
+
|
|
154
|
+
```html
|
|
155
|
+
<script setup>
|
|
156
|
+
const handleWindow = (options) => {
|
|
157
|
+
console.log('ID окна:', options.id)
|
|
158
|
+
console.log('Окно открыто:', options.open)
|
|
159
|
+
console.log('Элемент окна:', options.element)
|
|
160
|
+
console.log('Элемент управления:', options.control)
|
|
127
161
|
}
|
|
162
|
+
</script>
|
|
128
163
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
164
|
+
<template>
|
|
165
|
+
<Window @window="handleWindow">
|
|
166
|
+
<template #default>
|
|
167
|
+
<p>Содержимое окна</p>
|
|
168
|
+
</template>
|
|
169
|
+
</Window>
|
|
170
|
+
</template>
|
|
135
171
|
```
|
|
136
172
|
|
|
173
|
+
|
|
137
174
|
Пример использования Canvas:
|
|
138
175
|
<Canvas of={Chip.ChipSkeleton}/>
|
|
139
176
|
|