@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
@@ -0,0 +1,103 @@
1
+ import {Meta} from '@storybook/addon-docs/blocks'
2
+
3
+ <Meta title="[title]" />
4
+
5
+ # Composable useToggle
6
+
7
+ Composable for managing boolean state with extended toggle methods. Provides a convenient interface for working with visibility flags, modals, and other toggleable states.
8
+
9
+ ## Key Features
10
+
11
+ - **Simple toggling** — intuitive API for state changes
12
+ - **Explicit methods** — separate functions for setting true/false
13
+ - **Argument support** — ability to set specific value via toggle
14
+ - **Full reactivity** — based on Vue Reactivity API
15
+ - **Type safety** — strict typing of parameters and return values
16
+
17
+ ## Function
18
+
19
+ ### `useToggle`
20
+
21
+ Creates a boolean state management object.
22
+
23
+ **Parameters:**
24
+ - `initialValue: boolean` — initial state value (default `false`)
25
+
26
+ **Returns:** `UseToggleReturn` — object with state and management methods
27
+
28
+ **UseToggleReturn:**
29
+ - `value: Ref<boolean>` — reactive value
30
+ - `toggle: (nextValue?: boolean) => void` — toggles value or sets the passed one
31
+ - `setTrue: () => void` — sets value to true
32
+ - `setFalse: () => void` — sets value to false
33
+
34
+ ```javascript
35
+ import { useToggle } from '@dxtmisha/demo'
36
+
37
+ // Initialization
38
+ const { value, toggle } = useToggle(false)
39
+
40
+ // Usage
41
+ toggle() // value becomes true
42
+ ```
43
+
44
+ ## Basic Usage
45
+
46
+ ### Basic Management
47
+
48
+ ```javascript
49
+ import { useToggle } from '@dxtmisha/demo'
50
+
51
+ const { value: isMenuOpen, toggle, setFalse: closeMenu } = useToggle()
52
+
53
+ // Open menu
54
+ toggle()
55
+
56
+ // Close menu (explicit action)
57
+ closeMenu()
58
+ ```
59
+
60
+ ### Usage with v-if
61
+
62
+ ```javascript
63
+ import { useToggle } from '@dxtmisha/demo'
64
+
65
+ export default {
66
+ setup() {
67
+ const { value: showDetails, toggle } = useToggle(false)
68
+
69
+ return { showDetails, toggle }
70
+ }
71
+ }
72
+
73
+ // Template:
74
+ // <button @click="toggle()">
75
+ // {{ showDetails ? 'Hide' : 'Show' }} details
76
+ // </button>
77
+ // <div v-if="showDetails">
78
+ // Detailed information...
79
+ // </div>
80
+ ```
81
+
82
+ ## Working with Data Types
83
+
84
+ ### Renaming
85
+
86
+ ```javascript
87
+ // Destructuring allows giving meaningful names
88
+ const {
89
+ value: isLoading,
90
+ setTrue: startLoading,
91
+ setFalse: stopLoading
92
+ } = useToggle(false)
93
+
94
+ const loadData = async () => {
95
+ startLoading()
96
+ try {
97
+ await api.getData()
98
+ } finally {
99
+ stopLoading()
100
+ }
101
+ }
102
+ ```
103
+
@@ -0,0 +1,103 @@
1
+ import {Meta} from '@storybook/addon-docs/blocks'
2
+
3
+ <Meta title="[title]" />
4
+
5
+ # Композабл useToggle
6
+
7
+ Композабл для управления булевым состоянием с расширенными методами переключения. Предоставляет удобный интерфейс для работы с флагами видимости, модальными окнами и другими переключаемыми состояниями.
8
+
9
+ ## Основные возможности
10
+
11
+ - **Простое переключение** — интуитивное API для смены состояния
12
+ - **Явные методы** — отдельные функции для установки true/false
13
+ - **Поддержка аргументов** — возможность установки конкретного значения через toggle
14
+ - **Полная реактивность** — базируется на Vue Reactivity API
15
+ - **Типобезопасность** — строгая типизация параметров и возвращаемых значений
16
+
17
+ ## Функция
18
+
19
+ ### `useToggle`
20
+
21
+ Создаёт объект управления булевым состоянием.
22
+
23
+ **Параметры:**
24
+ - `initialValue: boolean` — начальное значение состояния (по умолчанию `false`)
25
+
26
+ **Возвращает:** `UseToggleReturn` — объект с состоянием и методами управления
27
+
28
+ **UseToggleReturn:**
29
+ - `value: Ref<boolean>` — реактивное значение
30
+ - `toggle: (nextValue?: boolean) => void` — переключает значение или устанавливает переданное
31
+ - `setTrue: () => void` — устанавливает значение в true
32
+ - `setFalse: () => void` — устанавливает значение в false
33
+
34
+ ```javascript
35
+ import { useToggle } from '@dxtmisha/demo'
36
+
37
+ // Инициализация
38
+ const { value, toggle } = useToggle(false)
39
+
40
+ // Использование
41
+ toggle() // value становится true
42
+ ```
43
+
44
+ ## Основное использование
45
+
46
+ ### Базовое управление
47
+
48
+ ```javascript
49
+ import { useToggle } from '@dxtmisha/demo'
50
+
51
+ const { value: isMenuOpen, toggle, setFalse: closeMenu } = useToggle()
52
+
53
+ // Открыть меню
54
+ toggle()
55
+
56
+ // Закрыть меню (явное действие)
57
+ closeMenu()
58
+ ```
59
+
60
+ ### Использование с v-if
61
+
62
+ ```javascript
63
+ import { useToggle } from '@dxtmisha/demo'
64
+
65
+ export default {
66
+ setup() {
67
+ const { value: showDetails, toggle } = useToggle(false)
68
+
69
+ return { showDetails, toggle }
70
+ }
71
+ }
72
+
73
+ // Template:
74
+ // <button @click="toggle()">
75
+ // {{ showDetails ? 'Скрыть' : 'Показать' }} детали
76
+ // </button>
77
+ // <div v-if="showDetails">
78
+ // Подробная информация...
79
+ // </div>
80
+ ```
81
+
82
+ ## Работа с типами данных
83
+
84
+ ### Переопределение имен
85
+
86
+ ```javascript
87
+ // Деструктуризация позволяет давать понятные имена
88
+ const {
89
+ value: isLoading,
90
+ setTrue: startLoading,
91
+ setFalse: stopLoading
92
+ } = useToggle(false)
93
+
94
+ const loadData = async () => {
95
+ startLoading()
96
+ try {
97
+ await api.getData()
98
+ } finally {
99
+ stopLoading()
100
+ }
101
+ }
102
+ ```
103
+
@@ -0,0 +1,30 @@
1
+ import {Meta} from '@storybook/addon-docs/blocks'
2
+
3
+ <Meta title="[title]" />
4
+
5
+ ## `toBinds`
6
+
7
+ Merges multiple property objects by sequentially applying `toBind` to each. Smartly handles classes and styles, creating composite property objects.
8
+
9
+ **Parameters:**
10
+ - `...values: (ItemList | undefined)[]` — list of property objects to merge
11
+
12
+ **Returns:**
13
+ Final merged object with all properties, classes and styles.
14
+
15
+ ```javascript
16
+ import { toBinds } from '@dxtmisha/functional'
17
+
18
+ // Merging multiple objects
19
+ toBinds(
20
+ {class: 'btn', disabled: false},
21
+ {class: 'primary', type: 'button'},
22
+ {class: 'large', id: 'submit-btn'}
23
+ )
24
+ // Result: {
25
+ // class: ['btn', 'primary', 'large'],
26
+ // disabled: false,
27
+ // type: 'button',
28
+ // id: 'submit-btn'
29
+ // }
30
+ ```
@@ -0,0 +1,30 @@
1
+ import {Meta} from '@storybook/addon-docs/blocks'
2
+
3
+ <Meta title="[title]" />
4
+
5
+ ## `toBinds`
6
+
7
+ Объединяет несколько объектов со свойствами, последовательно применяя `toBind` к каждому. Умно обрабатывает классы и стили, создавая составные объекты свойств.
8
+
9
+ **Параметры:**
10
+ - `...values: (ItemList | undefined)[]` — список объектов свойств для объединения
11
+
12
+ **Возвращает:**
13
+ Итоговый объединённый объект со всеми свойствами, классами и стилями.
14
+
15
+ ```javascript
16
+ import { toBinds } from '@dxtmisha/functional'
17
+
18
+ // Объединение нескольких объектов
19
+ toBinds(
20
+ {class: 'btn', disabled: false},
21
+ {class: 'primary', type: 'button'},
22
+ {class: 'large', id: 'submit-btn'}
23
+ )
24
+ // Результат: {
25
+ // class: ['btn', 'primary', 'large'],
26
+ // disabled: false,
27
+ // type: 'button',
28
+ // id: 'submit-btn'
29
+ // }
30
+ ```
@@ -8,7 +8,7 @@ import { viteComponentOnly } from '@dxtmisha/configuration/viteComponentOnly'
8
8
  export default mergeConfig(
9
9
  {}, // viteWorkers,
10
10
  viteComponentOnly(
11
- resolve(__dirname, './[path]/index.ts'),
11
+ resolve(__dirname, './[path]'),
12
12
  resolve(__dirname, './src')
13
13
  )
14
14
  )
@@ -0,0 +1,19 @@
1
+ import type { Datetime } from '@dxtmisha/functional-basic'
2
+ import type { GitFileItem } from './gitTypes'
3
+
4
+ export type AiImageItem = {
5
+ mime: string
6
+ base64: string
7
+ }
8
+ export type AiImageList = AiImageItem[]
9
+
10
+ export type AiDocFile = {
11
+ content: string
12
+ date: Datetime
13
+ }
14
+
15
+ export type AiDocTypeItem = {
16
+ check: (item: GitFileItem) => boolean
17
+ item: any
18
+ }
19
+ export type AiDocTypes = AiDocTypeItem[]
@@ -1,5 +1,5 @@
1
1
  /** AI type for content generation / Тип ИИ для генерации контента */
2
- export type AiType = 'gemini'
2
+ export type AiType = 'gemini' | 'gemini-cli'
3
3
 
4
4
  /** Configuration structure for the design system UI project / Структура конфигурации для проекта дизайн-системы UI */
5
5
  export type DesignUiConfig = {
@@ -39,6 +39,12 @@ export type DesignUiConfig = {
39
39
  /** AI model for generating content / Модель ИИ для генерации контента */
40
40
  aiModel?: string
41
41
 
42
- /** Google API key for accessing Google services / Ключ Google API для доступа к сервисам Google */
42
+ /** Google AI key for accessing Google services / Ключ Google AI для доступа к сервисам Google */
43
43
  aiKey?: string
44
+
45
+ /** Directories for AI documentation generation / Каталоги для генерации AI документации */
46
+ aiDocDirectory?: string[]
47
+
48
+ /** Paths to Storybook for AI documentation generation / Пути к Storybook для генерации AI документации */
49
+ aiDocStorybookPath?: string
44
50
  }
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Git file status codes/
3
+ * Коды статусов файлов Git
4
+ */
5
+ export enum GitStatus {
6
+ // Basic statuses
7
+ /** File has been modified / Файл был изменен */
8
+ MODIFIED = 'M',
9
+ /** File has been added / Файл был добавлен */
10
+ ADDED = 'A',
11
+ /** File has been deleted / Файл был удален */
12
+ DELETED = 'D',
13
+ /** File has been renamed / Файл был переименован */
14
+ RENAMED = 'R',
15
+ /** File has been copied / Файл был скопирован */
16
+ COPIED = 'C',
17
+ /** File has been updated / Файл был обновлен */
18
+ UPDATED = 'U',
19
+ /** File is untracked / Файл не отслеживается */
20
+ UNTRACKED = '??',
21
+ /** File is ignored / Файл игнорируется */
22
+ IGNORED = '!!',
23
+ // Merge conflict statuses
24
+ /** File modified by both sides / Файл изменен с обеих сторон */
25
+ BOTH_MODIFIED = 'UU',
26
+ /** File added by us / Файл добавлен нами */
27
+ ADDED_BY_US = 'AU',
28
+ /** File deleted by us / Файл удален нами */
29
+ DELETED_BY_US = 'DU',
30
+ /** File added by them / Файл добавлен ими */
31
+ ADDED_BY_THEM = 'UA',
32
+ /** File deleted by them / Файл удален ими */
33
+ DELETED_BY_THEM = 'UD',
34
+ /** File added by both sides / Файл добавлен с обеих сторон */
35
+ BOTH_ADDED = 'AA',
36
+ /** File deleted by both sides / Файл удален с обеих сторон */
37
+ BOTH_DELETED = 'DD',
38
+ // Index and work tree statuses
39
+ /** File modified in index / Файл изменен в индексе */
40
+ MODIFIED_IN_INDEX = 'MM',
41
+ /** File added in index / Файл добавлен в индексе */
42
+ ADDED_IN_INDEX = 'AM',
43
+ /** File deleted in index / Файл удален в индексе */
44
+ DELETED_IN_INDEX = 'DM',
45
+ /** File renamed in index / Файл переименован в индексе */
46
+ RENAMED_IN_INDEX = 'RM',
47
+ /** File copied in index / Файл скопирован в индексе */
48
+ COPIED_IN_INDEX = 'CM'
49
+ }
50
+
51
+ export type GitFileItem = {
52
+ path: string
53
+ pathByOS: string[]
54
+ pathFull: string
55
+ date: string
56
+ status?: GitStatus
57
+ }
58
+
59
+ export type GitFileList = GitFileItem[]