@dxtmisha/scripts 0.11.7 → 1.0.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.
Files changed (335) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/ai-resources/componentMaterials.md +19 -0
  3. package/ai-resources/componentPrompt.md +381 -0
  4. package/ai-resources/componentWiki.md +13 -0
  5. package/bin/arguments.ts +168 -0
  6. package/bin/build-packages.ts +12 -2
  7. package/bin/build-publish-packages.ts +12 -2
  8. package/bin/design-component.ts +7 -1
  9. package/bin/design-constructor.ts +22 -3
  10. package/bin/design-figma.ts +26 -4
  11. package/bin/design-flags.ts +14 -2
  12. package/bin/design-library.ts +7 -1
  13. package/bin/design-package.ts +29 -5
  14. package/bin/design-prompt.ts +22 -3
  15. package/bin/design-screenshot.ts +12 -2
  16. package/bin/design-types-save.ts +32 -5
  17. package/bin/design-types.ts +32 -6
  18. package/bin/design-ui.ts +21 -3
  19. package/bin/design-wiki-storm.ts +11 -3
  20. package/dist/AiZAi-x3CInynJ.js +232 -0
  21. package/dist/PropertiesConfig-ChizwW5y.js +250 -0
  22. package/{src/config.ts → dist/config.d.ts} +179 -158
  23. package/dist/config.js +20 -0
  24. package/dist/figmaApiTypes-CArSsNW8.js +6 -0
  25. package/dist/library-ai.d.ts +482 -0
  26. package/dist/library-ai.js +2 -0
  27. package/dist/library-figma.d.ts +462 -0
  28. package/dist/library-figma.js +75 -0
  29. package/dist/library-ui.d.ts +586 -0
  30. package/dist/library-ui.js +3760 -0
  31. package/dist/library.d.ts +4677 -0
  32. package/dist/library.js +1436 -0
  33. package/dist/propertyTypes-DflziKuR.js +236 -0
  34. package/package.json +69 -20
  35. package/bin/ai-doc.ts +0 -7
  36. package/bin/build-functional.ts +0 -5
  37. package/bin/design-component-wiki.ts +0 -11
  38. package/src/classes/Ai/AiAbstract.ts +0 -242
  39. package/src/classes/Ai/AiClaude.ts +0 -26
  40. package/src/classes/Ai/AiClaudeAgent.ts +0 -16
  41. package/src/classes/Ai/AiClaudeAgentLite.ts +0 -86
  42. package/src/classes/Ai/AiClaudeCli.ts +0 -24
  43. package/src/classes/Ai/AiClaudeCliLite.ts +0 -108
  44. package/src/classes/Ai/AiClaudeLite.ts +0 -112
  45. package/src/classes/Ai/AiDoc.ts +0 -81
  46. package/src/classes/Ai/AiDocItem.ts +0 -27
  47. package/src/classes/Ai/AiDocItemAbstract.ts +0 -209
  48. package/src/classes/Ai/AiDocItemClasses.ts +0 -27
  49. package/src/classes/Ai/AiDocItemComposables.ts +0 -20
  50. package/src/classes/Ai/AiDocType.ts +0 -45
  51. package/src/classes/Ai/AiGoogle.ts +0 -26
  52. package/src/classes/Ai/AiGoogleCli.ts +0 -24
  53. package/src/classes/Ai/AiGoogleCliLite.ts +0 -108
  54. package/src/classes/Ai/AiGoogleLite.ts +0 -78
  55. package/src/classes/Ai/AiOpenAi.ts +0 -26
  56. package/src/classes/Ai/AiOpenAiLite.ts +0 -107
  57. package/src/classes/Ai/AiZAi.ts +0 -17
  58. package/src/classes/Ai/AiZAiLite.ts +0 -77
  59. package/src/classes/Ai/ApiTmp.ts +0 -43
  60. package/src/classes/BrowserItem.ts +0 -408
  61. package/src/classes/Build/BuildFunctional.ts +0 -54
  62. package/src/classes/Build/BuildPackages.ts +0 -137
  63. package/src/classes/Build/BuildPublishPackages.ts +0 -105
  64. package/src/classes/BuildItem.ts +0 -187
  65. package/src/classes/Component/ComponentCreator.ts +0 -45
  66. package/src/classes/Component/ComponentItem.ts +0 -161
  67. package/src/classes/Component/ComponentWiki.ts +0 -258
  68. package/src/classes/Component/ComponentWikiFile.ts +0 -138
  69. package/src/classes/Design/DesignCommand.ts +0 -243
  70. package/src/classes/Design/DesignComponent.ts +0 -824
  71. package/src/classes/Design/DesignConstructor.ts +0 -222
  72. package/src/classes/Design/DesignConstructors.ts +0 -101
  73. package/src/classes/Design/DesignFigma.ts +0 -61
  74. package/src/classes/Design/DesignFlags.ts +0 -215
  75. package/src/classes/Design/DesignReplace.ts +0 -672
  76. package/src/classes/Design/DesignScreenshot.ts +0 -133
  77. package/src/classes/Design/DesignStructure.ts +0 -201
  78. package/src/classes/Design/DesignStructureClasses.ts +0 -105
  79. package/src/classes/Design/DesignStructureItemAbstract.ts +0 -52
  80. package/src/classes/Design/DesignStructureRead.ts +0 -349
  81. package/src/classes/Design/DesignStructureStyles.ts +0 -45
  82. package/src/classes/Design/DesignTypes.ts +0 -94
  83. package/src/classes/Design/DesignTypesAi.ts +0 -135
  84. package/src/classes/Design/DesignTypesDescription.ts +0 -119
  85. package/src/classes/Design/DesignTypesMake.ts +0 -460
  86. package/src/classes/Design/DesignTypesMcp.ts +0 -90
  87. package/src/classes/Design/DesignTypesPrompts.ts +0 -332
  88. package/src/classes/Design/DesignTypescript.ts +0 -244
  89. package/src/classes/Design/DesignUi.ts +0 -143
  90. package/src/classes/Design/DesignWiki.ts +0 -52
  91. package/src/classes/Design/DesignWikiStorm.ts +0 -95
  92. package/src/classes/Design/DesignWikiStormItem.ts +0 -316
  93. package/src/classes/FigmaApi.ts +0 -190
  94. package/src/classes/Git/GitRead.ts +0 -261
  95. package/src/classes/Library/LibraryAiMcpItem.ts +0 -67
  96. package/src/classes/Library/LibraryAiPrompt.ts +0 -268
  97. package/src/classes/Library/LibraryAiPromptItem.ts +0 -331
  98. package/src/classes/Library/LibraryAiWiki.ts +0 -127
  99. package/src/classes/Library/LibraryAiWikiItem.ts +0 -79
  100. package/src/classes/Library/LibraryExport.ts +0 -167
  101. package/src/classes/Library/LibraryFlags.ts +0 -62
  102. package/src/classes/Library/LibraryItems.ts +0 -138
  103. package/src/classes/Library/LibraryList.ts +0 -189
  104. package/src/classes/Library/LibraryMedia.ts +0 -139
  105. package/src/classes/Library/LibraryPlugin.ts +0 -73
  106. package/src/classes/Library/LibraryTypes.ts +0 -130
  107. package/src/classes/Package/PackageFile.ts +0 -154
  108. package/src/classes/Package/PackageInit.ts +0 -54
  109. package/src/classes/Package/PackageItem.ts +0 -329
  110. package/src/classes/Properties/Properties.ts +0 -175
  111. package/src/classes/Properties/PropertiesCache.ts +0 -248
  112. package/src/classes/Properties/PropertiesConfig.ts +0 -213
  113. package/src/classes/Properties/PropertiesConvector.ts +0 -52
  114. package/src/classes/Properties/PropertiesFile.ts +0 -522
  115. package/src/classes/Properties/PropertiesImport.ts +0 -182
  116. package/src/classes/Properties/PropertiesItems.ts +0 -605
  117. package/src/classes/Properties/PropertiesKeys.ts +0 -121
  118. package/src/classes/Properties/PropertiesMain.ts +0 -138
  119. package/src/classes/Properties/PropertiesPalette.ts +0 -149
  120. package/src/classes/Properties/PropertiesPath.ts +0 -193
  121. package/src/classes/Properties/PropertiesScss.ts +0 -261
  122. package/src/classes/Properties/PropertiesSeparator.ts +0 -118
  123. package/src/classes/Properties/PropertiesSettings.ts +0 -104
  124. package/src/classes/Properties/PropertiesStandard.ts +0 -180
  125. package/src/classes/Properties/PropertiesTool.ts +0 -80
  126. package/src/classes/Properties/PropertiesTypes.ts +0 -147
  127. package/src/classes/Properties/PropertiesValues.ts +0 -75
  128. package/src/classes/Properties/PropertiesWrap.ts +0 -187
  129. package/src/classes/Properties/convector/convectorColor.ts +0 -27
  130. package/src/classes/Properties/convector/convectorFontFamilies.ts +0 -18
  131. package/src/classes/Properties/convector/convectorShadow.ts +0 -61
  132. package/src/classes/Properties/convector/convectorTypography.ts +0 -19
  133. package/src/classes/Properties/to/PropertiesToAbstract.ts +0 -51
  134. package/src/classes/Properties/to/PropertiesToAnimate.ts +0 -59
  135. package/src/classes/Properties/to/PropertiesToClass.ts +0 -49
  136. package/src/classes/Properties/to/PropertiesToClone.ts +0 -114
  137. package/src/classes/Properties/to/PropertiesToComponent.ts +0 -52
  138. package/src/classes/Properties/to/PropertiesToDrag.ts +0 -231
  139. package/src/classes/Properties/to/PropertiesToDuplicate.ts +0 -165
  140. package/src/classes/Properties/to/PropertiesToFull.ts +0 -36
  141. package/src/classes/Properties/to/PropertiesToLink.ts +0 -259
  142. package/src/classes/Properties/to/PropertiesToMedia.ts +0 -187
  143. package/src/classes/Properties/to/PropertiesToMulti.ts +0 -101
  144. package/src/classes/Properties/to/PropertiesToNone.ts +0 -46
  145. package/src/classes/Properties/to/PropertiesToPalette.ts +0 -241
  146. package/src/classes/Properties/to/PropertiesToProperty.ts +0 -31
  147. package/src/classes/Properties/to/PropertiesToRemove.ts +0 -33
  148. package/src/classes/Properties/to/PropertiesToReplace.ts +0 -77
  149. package/src/classes/Properties/to/PropertiesToRoot.ts +0 -40
  150. package/src/classes/Properties/to/PropertiesToSimilar.ts +0 -128
  151. package/src/classes/Properties/to/PropertiesToSort.ts +0 -146
  152. package/src/classes/Properties/to/PropertiesToState.ts +0 -65
  153. package/src/classes/Properties/to/PropertiesToStyle.ts +0 -52
  154. package/src/classes/Properties/to/PropertiesToSub.ts +0 -95
  155. package/src/classes/Properties/to/PropertiesToSubclass.ts +0 -76
  156. package/src/classes/Properties/to/PropertiesToVar.ts +0 -194
  157. package/src/classes/Properties/to/PropertiesToVariable.ts +0 -176
  158. package/src/classes/Styles/Styles.ts +0 -247
  159. package/src/classes/Styles/StylesClasses.ts +0 -86
  160. package/src/classes/Styles/StylesProperties.ts +0 -197
  161. package/src/classes/Styles/StylesRoot.ts +0 -103
  162. package/src/classes/Styles/StylesTool.ts +0 -112
  163. package/src/classes/Styles/to/StylesToAbstract.ts +0 -93
  164. package/src/classes/Styles/to/StylesToAnimate.ts +0 -19
  165. package/src/classes/Styles/to/StylesToClass.ts +0 -25
  166. package/src/classes/Styles/to/StylesToClassFull.ts +0 -19
  167. package/src/classes/Styles/to/StylesToContainer.ts +0 -24
  168. package/src/classes/Styles/to/StylesToMedia.ts +0 -19
  169. package/src/classes/Styles/to/StylesToProperty.ts +0 -123
  170. package/src/classes/Styles/to/StylesToRoot.ts +0 -14
  171. package/src/classes/Styles/to/StylesToSelector.ts +0 -71
  172. package/src/classes/Styles/to/StylesToVar.ts +0 -105
  173. package/src/classes/Styles/to/StylesToVirtual.ts +0 -33
  174. package/src/composables/useAi.ts +0 -38
  175. package/src/demo/ai.ts +0 -10
  176. package/src/functions/getComponentPaths.ts +0 -13
  177. package/src/functions/getConfigAi.ts +0 -14
  178. package/src/functions/getConstructorProperties.ts +0 -54
  179. package/src/functions/getDirname.ts +0 -17
  180. package/src/functions/getNameDirByPaths.ts +0 -16
  181. package/src/functions/getPackageJson.ts +0 -19
  182. package/src/functions/hasNativeDirname.ts +0 -8
  183. package/src/functions/run.ts +0 -47
  184. package/src/functions/toPathStandardSep.ts +0 -14
  185. package/src/library-ai.ts +0 -10
  186. package/src/library.ts +0 -73
  187. package/src/media/ai/ai-doc-types.ts +0 -21
  188. package/src/media/properties/css.ts +0 -634
  189. package/src/media/properties/cssSelector.ts +0 -74
  190. package/src/media/properties/cssVirtual.ts +0 -12
  191. package/src/media/properties/listSort.ts +0 -113
  192. package/src/media/properties/style.ts +0 -81
  193. package/src/media/templates/component/DesignComponent.mdx +0 -30
  194. package/src/media/templates/component/DesignComponent.stories.ts +0 -34
  195. package/src/media/templates/component/DesignComponent.vue +0 -54
  196. package/src/media/templates/component/DesignComponentAiWiki.vue +0 -25
  197. package/src/media/templates/component/index.ts +0 -13
  198. package/src/media/templates/component/props.ts +0 -27
  199. package/src/media/templates/component/styleToken.scss +0 -17
  200. package/src/media/templates/component/wiki.ts +0 -13
  201. package/src/media/templates/component/wikiData.ts +0 -28
  202. package/src/media/templates/componentDoc/ComponentDoc.vue +0 -26
  203. package/src/media/templates/componentDoc/index.ts +0 -12
  204. package/src/media/templates/componentDoc/materials/README.md +0 -8
  205. package/src/media/templates/componentDoc/materials/prompt.md +0 -38
  206. package/src/media/templates/componentDoc/subcomponents/_.gitignore.txt +0 -0
  207. package/src/media/templates/componentDoc/types.ts +0 -15
  208. package/src/media/templates/componentDoc/wiki/ComponentDoc.mdx +0 -13
  209. package/src/media/templates/componentDoc/wiki/ComponentDoc.stories.ts +0 -24
  210. package/src/media/templates/componentDoc/wiki/prompt.md +0 -41
  211. package/src/media/templates/constructors/Constructors.ts +0 -33
  212. package/src/media/templates/constructors/ConstructorsDesign.tsx +0 -129
  213. package/src/media/templates/constructors/basicTypes.ts +0 -0
  214. package/src/media/templates/constructors/index.ts +0 -5
  215. package/src/media/templates/constructors/props.ts +0 -28
  216. package/src/media/templates/constructors/style.scss +0 -5
  217. package/src/media/templates/constructors/types.ts +0 -47
  218. package/src/media/templates/packages/figma/README.md +0 -1
  219. package/src/media/templates/packages/figma/_.gitignore.txt +0 -29
  220. package/src/media/templates/packages/figma/ai.sample.config.ts +0 -2
  221. package/src/media/templates/packages/figma/design.config.json +0 -3
  222. package/src/media/templates/packages/figma/index.html +0 -12
  223. package/src/media/templates/packages/figma/manifest.json +0 -25
  224. package/src/media/templates/packages/figma/package.json +0 -37
  225. package/src/media/templates/packages/figma/src/App.vue +0 -9
  226. package/src/media/templates/packages/figma/src/classes/_.gitignore.txt +0 -1
  227. package/src/media/templates/packages/figma/src/code.ts +0 -16
  228. package/src/media/templates/packages/figma/src/components/_.gitignore.txt +0 -1
  229. package/src/media/templates/packages/figma/src/composables/_.gitignore.txt +0 -1
  230. package/src/media/templates/packages/figma/src/config.ts +0 -0
  231. package/src/media/templates/packages/figma/src/functions/_.gitignore.txt +0 -1
  232. package/src/media/templates/packages/figma/src/library.ts +0 -0
  233. package/src/media/templates/packages/figma/src/main.ts +0 -4
  234. package/src/media/templates/packages/figma/src/media/_.gitignore.txt +0 -1
  235. package/src/media/templates/packages/figma/src/storybook/_.gitignore.txt +0 -1
  236. package/src/media/templates/packages/figma/src/types/_.gitignore.txt +0 -1
  237. package/src/media/templates/packages/figma/src/vite-env.d.ts +0 -1
  238. package/src/media/templates/packages/figma/tsconfig.app.json +0 -12
  239. package/src/media/templates/packages/figma/tsconfig.json +0 -7
  240. package/src/media/templates/packages/figma/tsconfig.node.json +0 -8
  241. package/src/media/templates/packages/figma/vite.config.ts +0 -7
  242. package/src/media/templates/packages/library/README.md +0 -1
  243. package/src/media/templates/packages/library/_.gitignore.txt +0 -27
  244. package/src/media/templates/packages/library/ai-description.md +0 -15
  245. package/src/media/templates/packages/library/design.config.json +0 -3
  246. package/src/media/templates/packages/library/index.html +0 -12
  247. package/src/media/templates/packages/library/materials/README.md +0 -8
  248. package/src/media/templates/packages/library/materials/prompt.md +0 -45
  249. package/src/media/templates/packages/library/package.json +0 -46
  250. package/src/media/templates/packages/library/src/App.vue +0 -8
  251. package/src/media/templates/packages/library/src/classes/_.gitignore.txt +0 -1
  252. package/src/media/templates/packages/library/src/components/_.gitignore.txt +0 -1
  253. package/src/media/templates/packages/library/src/composables/_.gitignore.txt +0 -1
  254. package/src/media/templates/packages/library/src/functions/_.gitignore.txt +0 -1
  255. package/src/media/templates/packages/library/src/library.ts +0 -0
  256. package/src/media/templates/packages/library/src/main.ts +0 -6
  257. package/src/media/templates/packages/library/src/style.scss +0 -0
  258. package/src/media/templates/packages/library/src/types/_.gitignore.txt +0 -1
  259. package/src/media/templates/packages/library/src/vite-env.d.ts +0 -1
  260. package/src/media/templates/packages/library/tsconfig.app.json +0 -11
  261. package/src/media/templates/packages/library/tsconfig.json +0 -7
  262. package/src/media/templates/packages/library/tsconfig.node.json +0 -7
  263. package/src/media/templates/packages/library/vite.config.ts +0 -14
  264. package/src/media/templates/packages/nitro/README.md +0 -1
  265. package/src/media/templates/packages/nitro/_.gitignore.txt +0 -28
  266. package/src/media/templates/packages/nitro/index.html +0 -2
  267. package/src/media/templates/packages/nitro/package.json +0 -25
  268. package/src/media/templates/packages/nitro/server/plugins/ui-plugin.ts +0 -7
  269. package/src/media/templates/packages/nitro/server/routes/api/hello.ts +0 -13
  270. package/src/media/templates/packages/nitro/src/App.vue +0 -10
  271. package/src/media/templates/packages/nitro/src/assets/_.gitignore.txt +0 -0
  272. package/src/media/templates/packages/nitro/src/components/_.gitignore.txt +0 -0
  273. package/src/media/templates/packages/nitro/src/composables/_.gitignore.txt +0 -0
  274. package/src/media/templates/packages/nitro/src/entry-client.ts +0 -13
  275. package/src/media/templates/packages/nitro/src/entry-server.ts +0 -29
  276. package/src/media/templates/packages/nitro/src/main.ts +0 -14
  277. package/src/media/templates/packages/nitro/src/pages/HomePage.vue +0 -8
  278. package/src/media/templates/packages/nitro/src/router.ts +0 -11
  279. package/src/media/templates/packages/nitro/src/style.scss +0 -0
  280. package/src/media/templates/packages/nitro/src/templates/main.html +0 -21
  281. package/src/media/templates/packages/nitro/src/vite-env.d.ts +0 -11
  282. package/src/media/templates/packages/nitro/tsconfig.app.json +0 -14
  283. package/src/media/templates/packages/nitro/tsconfig.json +0 -7
  284. package/src/media/templates/packages/nitro/tsconfig.node.json +0 -12
  285. package/src/media/templates/packages/nitro/vite.config.ts +0 -17
  286. package/src/media/templates/packages/project/README.md +0 -1
  287. package/src/media/templates/packages/project/_.gitignore.txt +0 -28
  288. package/src/media/templates/packages/project/design.config.json +0 -3
  289. package/src/media/templates/packages/project/index.html +0 -12
  290. package/src/media/templates/packages/project/materials/README.md +0 -8
  291. package/src/media/templates/packages/project/materials/prompt.md +0 -41
  292. package/src/media/templates/packages/project/package.json +0 -13
  293. package/src/media/templates/packages/project/public/_.gitignore.txt +0 -0
  294. package/src/media/templates/packages/project/src/App.vue +0 -12
  295. package/src/media/templates/packages/project/src/assets/_.gitignore.txt +0 -0
  296. package/src/media/templates/packages/project/src/components/_.gitignore.txt +0 -0
  297. package/src/media/templates/packages/project/src/composables/_.gitignore.txt +0 -0
  298. package/src/media/templates/packages/project/src/main.ts +0 -6
  299. package/src/media/templates/packages/project/src/style.scss +0 -0
  300. package/src/media/templates/packages/project/src/vite-env.d.ts +0 -1
  301. package/src/media/templates/packages/project/tsconfig.app.json +0 -11
  302. package/src/media/templates/packages/project/tsconfig.json +0 -7
  303. package/src/media/templates/packages/project/tsconfig.node.json +0 -7
  304. package/src/media/templates/packages/project/vite.config.ts +0 -7
  305. package/src/media/templates/prompts/aiCodeGlobalPrompt.en.md +0 -22
  306. package/src/media/templates/prompts/aiCodeGlobalPrompt.ru.md +0 -21
  307. package/src/media/templates/prompts/aiCodeVuePrompt.en.md +0 -17
  308. package/src/media/templates/prompts/aiCodeVuePrompt.ru.md +0 -17
  309. package/src/media/templates/prompts/aiDocClassPrompt.en.txt +0 -63
  310. package/src/media/templates/prompts/aiDocClassPrompt.ru.txt +0 -63
  311. package/src/media/templates/prompts/aiDocComposablePrompt.en.txt +0 -67
  312. package/src/media/templates/prompts/aiDocComposablePrompt.ru.txt +0 -67
  313. package/src/media/templates/prompts/aiDocFunctionPrompt.en.txt +0 -57
  314. package/src/media/templates/prompts/aiDocFunctionPrompt.ru.txt +0 -57
  315. package/src/media/templates/prompts/componentPrompt.en.txt +0 -182
  316. package/src/media/templates/prompts/componentPrompt.ru.txt +0 -182
  317. package/src/media/templates/prompts/demoClassEn.mdx +0 -111
  318. package/src/media/templates/prompts/demoClassRu.mdx +0 -111
  319. package/src/media/templates/prompts/demoComponentEn.mdx +0 -282
  320. package/src/media/templates/prompts/demoComponentRu.mdx +0 -282
  321. package/src/media/templates/prompts/demoComposableEn.mdx +0 -103
  322. package/src/media/templates/prompts/demoComposableRu.mdx +0 -103
  323. package/src/media/templates/prompts/demoDocEn.mdx +0 -30
  324. package/src/media/templates/prompts/demoDocRu.mdx +0 -30
  325. package/src/media/templates/viteComponentTemplateConfig.ts +0 -14
  326. package/src/types/aiTypes.ts +0 -19
  327. package/src/types/configTypes.ts +0 -69
  328. package/src/types/designTypes.ts +0 -167
  329. package/src/types/figmaApiTypes.ts +0 -337
  330. package/src/types/gitTypes.ts +0 -59
  331. package/src/types/libraryTypes.ts +0 -49
  332. package/src/types/propertyTypes.ts +0 -586
  333. package/src/types/screenshotTypes.ts +0 -55
  334. package/src/types/webTypes.ts +0 -134
  335. package/src/vite-env.d.ts +0 -1
@@ -1,247 +0,0 @@
1
- // export:none
2
-
3
- import { forEach, isFilled, isObjectNotArray } from '@dxtmisha/functional-basic'
4
-
5
- import { Properties } from '../Properties/Properties'
6
- import { PropertiesFile } from '../Properties/PropertiesFile'
7
- import { PropertiesItems } from '../Properties/PropertiesItems'
8
- import { PropertiesScss } from '../Properties/PropertiesScss'
9
-
10
- import { StylesTool } from './StylesTool'
11
-
12
- import { StylesRoot } from './StylesRoot'
13
- import { StylesClasses } from './StylesClasses'
14
-
15
- import {
16
- PropertyKey,
17
- type PropertyList,
18
- PropertyType
19
- } from '../../types/propertyTypes'
20
-
21
- import { UI_KEY_CONSTRUCTOR, UI_EXTENSION_STYLE } from '../../config'
22
-
23
- const FILE_VAR = 'vars'
24
- const FILE_CLASS = 'classes'
25
- const FILE_PROPERTIES = 'properties'
26
- const FILE_LIST = 'list'
27
- const FILE_BASIC = 'basic'
28
- const FILE_STYLE = 'style'
29
- const FILE_MAIN = 'main'
30
-
31
- const DIR_CLASS = 'classes'
32
-
33
- /**
34
- * Base class for generating basic properties.
35
- *
36
- * Базовый класс для генерации базовых свойств.
37
- */
38
- export class Styles {
39
- private readonly properties: Properties
40
-
41
- /**
42
- * Constructor
43
- */
44
- constructor() {
45
- this.properties = new Properties()
46
- }
47
-
48
- /**
49
- * Generating all basic data.
50
- *
51
- * Генерация всех базовых данных.
52
- */
53
- make(): this {
54
- this.getByDesigns((
55
- design,
56
- items
57
- ) => {
58
- this.initRoot(items)
59
- this.initClasses(items)
60
- this.initProperties(items)
61
- this.initList(items)
62
- this.initBasic(design)
63
- })
64
-
65
- return this
66
- }
67
-
68
- /**
69
- * Generating basic variables.
70
- *
71
- * Генерация базовых переменных.
72
- * @param items current element/ текущий элемент
73
- */
74
- protected initRoot(
75
- items: PropertiesItems
76
- ): this {
77
- const data = StylesTool.join(new StylesRoot(items).init())
78
-
79
- PropertiesFile.write(
80
- StylesTool.getDir(),
81
- FILE_VAR,
82
- data,
83
- UI_EXTENSION_STYLE
84
- )
85
-
86
- return this
87
- }
88
-
89
- /**
90
- * Generating all base classes.
91
- *
92
- * Генерация всех базовых классов.
93
- * @param items current element/ текущий элемент
94
- */
95
- protected initClasses(
96
- items: PropertiesItems
97
- ): this {
98
- const {
99
- data,
100
- classes
101
- } = new StylesClasses(items).init()
102
-
103
- forEach(classes, (item, name) => {
104
- PropertiesFile.write(
105
- [...StylesTool.getDir(), DIR_CLASS],
106
- name,
107
- StylesTool.join(item),
108
- UI_EXTENSION_STYLE
109
- )
110
- })
111
-
112
- PropertiesFile.write(
113
- StylesTool.getDir(),
114
- FILE_CLASS,
115
- StylesTool.join(data),
116
- UI_EXTENSION_STYLE
117
- )
118
-
119
- return this
120
- }
121
-
122
- protected initProperties(
123
- items: PropertiesItems
124
- ): this {
125
- const scss = new PropertiesScss(items)
126
-
127
- PropertiesFile.write(
128
- StylesTool.getDir(),
129
- FILE_PROPERTIES,
130
- scss.get(),
131
- UI_EXTENSION_STYLE
132
- )
133
-
134
- return this
135
- }
136
-
137
- protected initList(
138
- items: PropertiesItems
139
- ): this {
140
- PropertiesFile.write(
141
- StylesTool.getDir(),
142
- FILE_LIST,
143
- this.removeExcess(items.get())
144
- )
145
-
146
- return this
147
- }
148
-
149
- /**
150
- * Creates files for connection.
151
- *
152
- * Создает файлы для подключения.
153
- * @param design design name/ название дизайна
154
- */
155
- protected initBasic(design: string): this {
156
- const dir = StylesTool.getDir()
157
-
158
- PropertiesFile.write(
159
- dir,
160
- FILE_BASIC,
161
- [
162
- `@use "./${FILE_VAR}";`,
163
- `@use "./${FILE_PROPERTIES}";`,
164
- `@use "./${FILE_CLASS}";`
165
- ].join('\r\n'),
166
- UI_EXTENSION_STYLE
167
- )
168
-
169
- PropertiesFile.write(
170
- dir,
171
- FILE_STYLE,
172
- [
173
- `@use "@dxtmisha/styles" as variables;`,
174
- `@use "./${FILE_PROPERTIES}";`,
175
- '',
176
- `@forward "@dxtmisha/styles/${FILE_PROPERTIES}";`,
177
- '',
178
- `@include variables.setDesignsDesign('${design}');`,
179
- ''
180
- ].join('\r\n'),
181
- UI_EXTENSION_STYLE
182
- )
183
-
184
- if (!PropertiesFile.is([...dir, `${FILE_MAIN}.${UI_EXTENSION_STYLE}`])) {
185
- PropertiesFile.write(
186
- dir,
187
- FILE_MAIN,
188
- [
189
- `@use "./${FILE_BASIC}";`,
190
- `@use "@dxtmisha/styles/${FILE_PROPERTIES}" as ui;`,
191
- `@use "@dxtmisha/media/style.css";`,
192
- '',
193
- '@include ui.initGlobal;',
194
- `@include ui.initDesignBody('${design}.main');`
195
- ].join('\r\n'),
196
- UI_EXTENSION_STYLE
197
- )
198
- }
199
-
200
- return this
201
- }
202
-
203
- /**
204
- * Generating a list of properties from a design.
205
- *
206
- * Получение списка свойств по дизайну.
207
- * @param callback data processing function/ функция для обработки данных
208
- */
209
- private getByDesigns(callback: (design: string, items: PropertiesItems) => void): void {
210
- const properties = this.properties.get().get()
211
-
212
- this.properties
213
- .get()
214
- .getDesigns()
215
- .forEach((design) => {
216
- if (design !== UI_KEY_CONSTRUCTOR) {
217
- callback(
218
- design,
219
- new PropertiesItems(properties).setFocusDesign(design)
220
- )
221
- }
222
- })
223
- }
224
-
225
- private removeExcess(data: PropertyList) {
226
- const list: Record<string, any> = {}
227
-
228
- forEach(data, (item, key) => {
229
- if (
230
- item[PropertyKey.variable] === PropertyType.var
231
- || isObjectNotArray(item.value)
232
- ) {
233
- const value = isObjectNotArray(item.value) ? this.removeExcess(item.value) : item.value
234
-
235
- if (isFilled(value)) {
236
- list[key] = {
237
- name: item[PropertyKey.name],
238
- type: item[PropertyKey.variable],
239
- value
240
- }
241
- }
242
- }
243
- })
244
-
245
- return list
246
- }
247
- }
@@ -1,86 +0,0 @@
1
- // export:none
2
-
3
- import { isFilled, isObjectNotArray, toKebabCase } from '@dxtmisha/functional-basic'
4
-
5
- import { PropertiesItems } from '../Properties/PropertiesItems'
6
-
7
- import { StylesTool } from './StylesTool'
8
- import { StylesProperties } from './StylesProperties'
9
-
10
- import {
11
- PropertyCategory,
12
- type PropertyItemsItem,
13
- PropertyKey
14
- } from '../../types/propertyTypes'
15
-
16
- export type StylesClassesItem = {
17
- data: string[]
18
- classes: Record<string, string[]>
19
- }
20
-
21
- /**
22
- * A class for generating base classes.
23
- *
24
- * Класс для генерации базовых классов.
25
- */
26
- export class StylesClasses {
27
- /**
28
- * Constructor
29
- * @param items
30
- */
31
-
32
- constructor(private items: PropertiesItems) {
33
- }
34
-
35
- /**
36
- * Generating all base classes.
37
- *
38
- * Генерация всех базовых классов.
39
- */
40
- init(): StylesClassesItem {
41
- const data: StylesClassesItem['data'] = []
42
- const classes: StylesClassesItem['classes'] = {}
43
- const space = StylesTool.addSpace(1)
44
-
45
- this.getList().forEach((property) => {
46
- const {
47
- value,
48
- item
49
- } = property
50
-
51
- if (
52
- isFilled(value)
53
- && isObjectNotArray(value)
54
- ) {
55
- const name = item[PropertyKey.name] as string
56
-
57
- data.push(StylesTool.addUse(`./classes/${toKebabCase(name)}`))
58
-
59
- classes[name] = [
60
- StylesTool.addImportProperties(),
61
- '',
62
- `.${name} {`,
63
- ...(new StylesProperties(space, property)).make(),
64
- '}'
65
- ]
66
- }
67
- })
68
-
69
- return {
70
- data,
71
- classes
72
- }
73
- }
74
-
75
- /**
76
- * Getting all properties from base variables.
77
- *
78
- * Получение всех свойств из базовых переменных.
79
- */
80
- private getList(): PropertyItemsItem[] {
81
- return this.items.findCategory([
82
- PropertyCategory.class,
83
- PropertyCategory.theme
84
- ])
85
- }
86
- }
@@ -1,197 +0,0 @@
1
- // export:none
2
-
3
- import { PropertiesItems } from '../Properties/PropertiesItems'
4
-
5
- import { StylesTool } from './StylesTool'
6
-
7
- import { StylesToClass } from './to/StylesToClass'
8
- import { StylesToClassFull } from './to/StylesToClassFull'
9
- import { StylesToVar } from './to/StylesToVar'
10
- import { StylesToProperty } from './to/StylesToProperty'
11
- import { StylesToSelector } from './to/StylesToSelector'
12
- import { StylesToVirtual } from './to/StylesToVirtual'
13
- import { StylesToMedia } from './to/StylesToMedia'
14
- import { StylesToContainer } from './to/StylesToContainer'
15
- import { StylesToAnimate } from './to/StylesToAnimate'
16
- import { StylesToRoot } from './to/StylesToRoot'
17
-
18
- import {
19
- type PropertyItem,
20
- type PropertyItemsItem,
21
- PropertyKey,
22
- PropertyType
23
- } from '../../types/propertyTypes'
24
-
25
- const TYPE_AUXILIARY = [
26
- 'selector',
27
- 'virtual'
28
- ]
29
-
30
- const TYPE_BASIC = [
31
- 'var',
32
- 'property',
33
- 'scss'
34
- ]
35
-
36
- /**
37
- * A class for converting all property types in SCSS.
38
- *
39
- * Класс для преобразования всех тип свойство в виде scss.
40
- */
41
- export class StylesProperties {
42
- private readonly item: PropertyItem
43
- private readonly data: string[] = []
44
-
45
- private first: boolean = false
46
-
47
- /**
48
- * Constructor
49
- * @param space пробелы
50
- * @param property array with all property records/ массив со всеми записями свойств
51
- * @param parent object of ancestor/ объект предка
52
- */
53
-
54
- constructor(
55
- private space: string,
56
- private property: PropertyItemsItem,
57
- private parent?: PropertyItem
58
- ) {
59
- this.item = property.item
60
- }
61
-
62
- /**
63
- * Generating all properties and variables.
64
- *
65
- * Генерация всех свойств и переменных.
66
- */
67
- make(): string[] {
68
- (new PropertiesItems({})).eachMainOnly((property) => {
69
- const { item } = property
70
-
71
- if (
72
- this.isAuxiliary()
73
- && this.isAuxiliary(item)
74
- && this.isNotBasic(item)
75
- ) {
76
- const data: string[] = new StylesProperties(
77
- StylesTool.increaseSpace(this.space),
78
- property,
79
- this.item
80
- ).make()
81
-
82
- this.data.push(
83
- `${this.space}& {`,
84
- ...data,
85
- `${this.space}}`
86
- )
87
- } else {
88
- const data = this.toByType(property)
89
-
90
- if (data.length > 0) {
91
- this.first = true
92
- }
93
-
94
- this.data.push(...data)
95
- }
96
- }, this.property)
97
-
98
- return this.data
99
- }
100
-
101
- /**
102
- * Checks if the type is one that requires a space at the beginning.
103
- *
104
- * Проверяет, является ли тип тот, для которого надо пробел поставить в начале.
105
- * @param item element for checking/ элемент для проверки
106
- */
107
- private isAuxiliary(
108
- item = this.parent
109
- ): boolean {
110
- return Boolean(item && TYPE_AUXILIARY.indexOf(item?.[PropertyKey.variable] as string) !== -1)
111
- }
112
-
113
- /**
114
- * Checks if the type is a base property of variables.
115
- *
116
- * Проверяет, является ли тип базовым свойством переменных.
117
- * @param item element for checking/ элемент для проверки
118
- */
119
- private isNotBasic(item: PropertyItem): boolean {
120
- return !(item && TYPE_BASIC.indexOf(item?.[PropertyKey.variable] as string) !== -1)
121
- }
122
-
123
- /**
124
- * Returns a function for iterating over all records.
125
- *
126
- * Возвращает функцию для обхода всех записей.
127
- * @param property initial variables for processing/ начальные переменные для обработки
128
- */
129
- private getContent(
130
- property: PropertyItemsItem
131
- ): () => string[] {
132
- return () => new StylesProperties(
133
- this.space,
134
- property,
135
- this.item
136
- ).make()
137
- }
138
-
139
- /**
140
- * Parameters for a class that converts data by type.
141
- *
142
- * Параметры для класса, который преобразует данные по типу.
143
- * @param property initial variables for processing/ начальные переменные для обработки
144
- */
145
- private getArgumentsForTo(
146
- property: PropertyItemsItem
147
- ): [PropertyItemsItem, string, () => string[], boolean] {
148
- return [
149
- property,
150
- this.space,
151
- this.getContent(property),
152
- this.first
153
- ]
154
- }
155
-
156
- /**
157
- * Converting a value to a string depending on the type.
158
- *
159
- * Преобразования значения в строка в зависимости от типа.
160
- * @param property initial variables for processing/ начальные переменные для обработки
161
- */
162
- private toByType(
163
- property: PropertyItemsItem
164
- ): string[] {
165
- const argumentsValue = this.getArgumentsForTo(property)
166
-
167
- switch (property.item?.[PropertyKey.variable]) {
168
- case PropertyType.var:
169
- return new StylesToVar(...argumentsValue).make()
170
- case PropertyType.property:
171
- return new StylesToProperty(...argumentsValue).make()
172
- case PropertyType.selector:
173
- return new StylesToSelector(...argumentsValue).make()
174
- case PropertyType.virtual:
175
- return new StylesToVirtual(...argumentsValue).make()
176
- case PropertyType.media:
177
- case PropertyType.mediaMax:
178
- return new StylesToMedia(...argumentsValue).make()
179
- case PropertyType.container:
180
- case PropertyType.containerMax:
181
- return new StylesToContainer(...argumentsValue).make()
182
- case PropertyType.animate:
183
- return new StylesToAnimate(...argumentsValue).make()
184
- case PropertyType.root:
185
- return new StylesToRoot(...argumentsValue).make()
186
- case PropertyType.state:
187
- case PropertyType.subclass:
188
- case PropertyType.classType:
189
- case PropertyType.scss:
190
- return new StylesToClass(...argumentsValue).make()
191
- case PropertyType.animateFrame:
192
- return new StylesToClassFull(...argumentsValue).make()
193
- default:
194
- return []
195
- }
196
- }
197
- }
@@ -1,103 +0,0 @@
1
- // export:none
2
-
3
- import * as sass from 'sass'
4
-
5
- import { PropertiesItems } from '../Properties/PropertiesItems'
6
-
7
- import { StylesTool } from './StylesTool'
8
- import { StylesToVar } from './to/StylesToVar'
9
-
10
- import {
11
- PropertyCategory,
12
- type PropertyItemsItem
13
- } from '../../types/propertyTypes'
14
-
15
- /**
16
- * Class for generating base properties from tokens.
17
- *
18
- * Класс для генерации базовых свойств из токенов.
19
- */
20
- export class StylesRoot {
21
- /**
22
- * Constructor
23
- * @param items
24
- */
25
-
26
- constructor(
27
- private items: PropertiesItems
28
- ) {
29
- }
30
-
31
- /**
32
- * Generating all basic token values.
33
- *
34
- * Генерация всех базовых значений токенов.
35
- */
36
- init(): string[] {
37
- const space = StylesTool.addSpace(1)
38
- const data: string[] = [
39
- ':root {'
40
- ]
41
-
42
- this.getList().forEach(
43
- property => data.push(...(new StylesToVar(property, space).make()))
44
- )
45
-
46
- data.push('}')
47
-
48
- return [
49
- StylesTool.addImportProperties(),
50
- '',
51
- this.initCalc(data.join('\r\n'))
52
- ]
53
- }
54
-
55
- /**
56
- * Getting all properties from base variables.
57
- *
58
- * Получение всех свойств из базовых переменных.
59
- */
60
- private getList(): PropertyItemsItem[] {
61
- return this.items.findCategory(PropertyCategory.root)
62
- }
63
-
64
- private getValue(value: string): string {
65
- if (value.match(/calc\(/) && !value.match(/var\(/)) {
66
- const result = sass.compileString(`a{height: ${value};}`)
67
- const read = result.css?.match(/height: ([^;]+);/)?.[1]
68
-
69
- if (read) {
70
- return read
71
- }
72
- }
73
-
74
- return value
75
- }
76
-
77
- private initCalc(data: string): string {
78
- let update = false
79
-
80
- const list = data.replace(
81
- /(?<=calc\(.*?)var\(([^)]+)\)/img,
82
- (_: string, value: string) => {
83
- const newValue = data.match(new RegExp(`(?<=${value}:)[^;\r\n]+`, 'im'))?.[0].trim()
84
-
85
- if (newValue) {
86
- update = true
87
- return this.getValue(newValue)
88
- }
89
-
90
- return value
91
- }
92
- )
93
-
94
- if (update) {
95
- return this.initCalc(list)
96
- }
97
-
98
- return list.replace(
99
- /calc\([^;\r\n]+/ig,
100
- value => this.getValue(value)
101
- )
102
- }
103
- }